在用js读取XML文档的时候出现了点问题,望大家多多指点!谢谢! 
  如下: 
       xml文件 
<ROOT> 
  <DATA> 
    <TAGS> 
      <TAG> 
        <TAGID>0000000036</TAGID> 
        <TAGCODE1>78</TAGCODE1> 
        <TAGCODE2/> 
        <MSGTYPE/> 
        <TAGDESC>Instructions to the Paying/Accepting/Negotiating Bank</TAGDESC> 
        <MOSTATUS>O</MOSTATUS> 
        <EXTTAG/> 
        <ROW1>0</ROW1> 
        <ROW2>0</ROW2> 
        <COL1>0</COL1> 
        <COL2>0</COL2> 
        <FORMFLAG/> 
        <RELATEDTAG/> 
        <RELATEDFLAG/> 
        <TAGINFO> 
          <LINEINFO> 
            <LINENO>1</LINENO> 
            <START>1</START> 
            <LEN>780</LEN> 
            <TYPE>String</TYPE> 
            <VALUE/> 
            <FIELD/> 
            <ROW>12</ROW> 
            <COL>65</COL> 
          </LINEINFO> 
        </TAGINFO> 
        <RULE/> 
        <REGEXP/> 
        <NETWORKRULES/> 
        <FORMAT/> 
      </TAG>  
      <TAG> 
        <TAGID>0000000060</TAGID> 
        <TAGCODE1>33</TAGCODE1> 
        <TAGCODE2>B</TAGCODE2> 
        <MSGTYPE/> 
        <TAGDESC>Currency/Original Ordered Amount</TAGDESC> 
        <MOSTATUS>O</MOSTATUS> 
        <EXTTAG/> 
        <ROW1>0</ROW1> 
        <ROW2>0</ROW2> 
        <COL1>0</COL1> 
        <COL2>0</COL2> 
        <FORMFLAG>N/M</FORMFLAG> 
        <RELATEDTAG/> 
        <RELATEDFLAG/> 
        <TAGINFO> 
          <LINEINFO> 
            <LINENO>1</LINENO> 
            <START>1</START> 
            <LEN>3</LEN> 
            <TYPE>String</TYPE> 
            <VALUE/> 
            <FIELD/> 
            <ROW>1</ROW> 
            <COL>18</COL> 
          </LINEINFO> 
          <LINEINFO> 
            <LINENO>1</LINENO> 
            <START>4</START> 
            <LEN>15</LEN> 
            <TYPE>Amount</TYPE> 
            <VALUE/> 
            <FIELD/> 
            <ROW>1</ROW> 
            <COL>18</COL> 
          </LINEINFO> 
        </TAGINFO> 
        <RULE>3!a15d</RULE> 
        <REGEXP>([A-Z]{3})([0-9,]{1,15})</REGEXP> 
        <NETWORKRULES/> 
        <FORMAT>&lt;CUR&gt;&lt;AMOUNT&gt;</FORMAT> 
      </TAG> 
    </TAGS> 
  </DATA> 
</ROOT> 我想读取每个<TAG>下的<LINEINFO>中的信息,并单独存放,就是说,加入我已经用 
getElementsByTagName('ROOT/DATA/TAGS/TAG/TAGINFO');获取到TAGINFO这一层,怎样去获取每一个LINEINFO下的LINEINFO呢,如果用getElementsByTagName('ROOT/DATA/TAGS/TAG/TAGINFO/LINEINFO);获取了三条LINEINFO信息,又怎么区分它们属于哪个TAGINFO下的呢! 
  不知道我说的是不是很清楚,请指点!谢谢! 

解决方案 »

  1.   

    先取得TAG后,得到包含三个节点的数组nodes, 用nodes[i].getElementsByTagName("")取TAGINFO/LINEINFO明确关系了。用XPath取节点更方便,可以直接指定位置 doc.selectSingleNode("//ROOT/DATA/TAGS/TAG[0]/TAGINFO")
      

  2.   


    function createXml(str)

    if(document.all)

    var xmlDom=new ActiveXObject("Microsoft.XMLDOM") 
    xmlDom.loadXML(str) 
    return xmlDom; 

    else 
    return new DOMParser().parseFromString(str, "text/xml"); 

    var domxml = createXml('xml串');var oTag = domxml.getElementsByTagName("TAGINFO");
    for(var i=0;i<oTag.length;i++)
    {
    var oInfo = oTag[i].getElementsByTagName("LINEINFO");
    for(var i=0;i<oInfo.length;i++)
    {
    alert(oInfo[i].getElementsByTagName("LINENO")[0].firstChild.nodeValue);
    alert(oInfo[i].getElementsByTagName("LEN")[0].firstChild.nodeValue);
    }
    }
      

  3.   

    可以参考我的博客http://blog.csdn.net/avon520/archive/2008/11/20/3340927.aspx