先确认xx是正确的childNodes改成children试试
或者xx.getElementsByTagName("jl")

解决方案 »

  1.   


    <html> 
    <head> 
    <title> </title> 
    </head> 
    <body> 
    <script> 
    function loadXML(xmlFile) 

    var xmlDoc; 
    if(window.ActiveXObject) 
        { 
            xmlDoc    = new ActiveXObject('Microsoft.XMLDOM'); 
            xmlDoc.async    = false; 
            xmlDoc.load(xmlFile); 
        } 
        else if (document.implementation&&document.implementation.createDocument) 
        { 
            xmlDoc    = document.implementation.createDocument('', '', null); 
            xmlDoc.async    = false; 
            xmlDoc.load(xmlFile); 
        } 
        else xmlDoc=null; 
        return xmlDoc; 

    var xmlDoc=loadXML("dsjm.xml"); var xx=xmlDoc.documentElement.getElementsByTagName("ztp")[0]; 
    document.write(xx.getElementsByTagName("jl").length); 
    </script> 
    </body> 
    </html>这个呢?
      

  2.   

    是loadXML函数写的有问题,但改正后在ie里得到的是想要的17而在ff里得到的却是35,其他的xml文件实验后得到的结果总是ff=ie*2+1;这是为什么?
      

  3.   

    ff把换行都认成节点了。。
    <ztp><node1/><node2/>……</ztp>
    这样就没事
      

  4.   

    <html>
     <head>
       <script language=javascript>
       window.onload=function(){
           
        var xml=new ActiveXObject("Msxml2.DOMDocument"); //创建对象
        xml.async=false; //同步
        xml.load("my.xml");  //载入    alert(xml.documentElement.selectNodes("main/n/name")[1].tagName); //取标签名
        alert(xml.documentElement.selectNodes("main/n/name")[1].text);   //取值
        alert(xml.documentElement.selectNodes("main/n/name")[1].getAttribute("id")); //取属性
    }
    </script>
     </head>  <body> </body>
    </html>
    如果读不出来的话改成 alert(xml.documentElement.selectNodes("//")[1].tagName); 
    试试