昨天和今天的学习成果

【说明】
取节点名称用nodeName(这个是我搜索到一篇讲delphi取xml数据的方法受到的启发。在delphi里,这里对应的是get_nodeName,呵呵。没办法,实在搜索不到有关DOM的详细属性,方法的文档。^_^)
取节点值用text
如果出现undefined提示,那么很显然,表示对象无此内置属性或者方法。

【本示例函数特别说明】
mainform是我的表单的名称

其实关键就两句
var note=xmlDoc.getElementsByTagName("note");//这里的note是我的数据根
for(var i=0;i<note.item(0).childNodes.length;i++)
{
var formMember=note.item(0).childNodes(i).nodeName;//这里取到了节点的名称
}


完整的示例如下


function xmlhttp_get(formdata,url)
{
 var nl=document.fm2.custom_id.length;
 //alert(typeof(nl));

 for (k=0;k<nl ;k++ )
 { 
 if (document.fm2.custom_id[k].checked)
 {
  //只有选中才取数据;
 //---------------------------------主程式开始------------------------

  var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

  xmlhttp.open("POST",url,false);

  xmlhttp.setRequestHeader("CONTENT-TYPE","application/x-www-form-urlencoded");

  xmlhttp.send(formdata);

  var strXML;

  strXML="";

  strXML=xmlhttp.ResponseText;

  //alert(strXML);


  maindata.value=strXML;

 var xmlDoc=new ActiveXObject("MSXML.DOMDocument");

 xmlDoc.async=false;

 if(xmlDoc.loadXML(strXML))
 
 {

  //var nod = xmlDoc.selectNodes("//note");

  var note=xmlDoc.getElementsByTagName("note");

   for(var i=0;i<note.item(0).childNodes.length;i++)
   {
                               //alert(nod[i].getAttributes("num"));
    var formMember=note.item(0).childNodes(i).nodeName;

    for(p=0;p<document.mainform.length;p++)
    {
    if (document.mainform.elements(p).name==formMember)
    {
    document.mainform.elements(p).value=note.item(0).childNodes(i).text;
    
    }
    }
    
      }
 
 }
 info.innerHTML="Execute End";

 //set xmlDoc=nothing;
 
 //xmlhttp.close;
 //set xmlhttp=nothing;
  
  //----------------------------------------主程式结束---------------------
  //取数据后,从循环中跳出;
  break;
 }//if 闭合
 }//for 闭合

}

 

希望能对大家有所帮助

Posted on 2005-03-01 20:04  古代  阅读(1364)  评论(0)    收藏  举报