现有XML如下。。
<?xml version="1.0" encoding="gb2312" ?>
<LeavWord>
  <Note>
    <name>sky</name>
    <content>就大方过的</content>
    <time>1990/02/11</time>
  </Note>
   <Note>
    <name>sky1</name>
    <content>就大方过的1</content>
    <time>1990/02/12</time>
  </Note>
</LeavWord>
代码如下。。
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{   
            alert('Your   browser   cannot   handle   this   script');    
        }   
    return xmlDoc;   

function _sd_Post() {
var xmlDoc=new loadXML("w.xml"); 
   var a=xmlDoc.getElementsByTagName('Note');//文件加载成功!
alert(a.length);
                 
}
为什么这个长度是0呢?而不是2,然后我想得到name节点下的sky,如何操作?谢谢了!

解决方案 »

  1.   

    在线等…麻烦知道的说下,thanks!
      

  2.   

       function _sd_Post() {
            var xmlDoc=new loadXML("w.xml"); 
              var a=xmlDoc.getElementsByTagName('LeavWord');//文件加载成功!
            alert(a.length);
                     
        }
    你跨越了一级
      

  3.   

    a[0].firstChild.nodeTypeValue.
    a的长度是2,我在firefox下和ie下都测试过了
      

  4.   

    这个ms你代码没错,应该是为2的,你检查一下你的编码,看下你html文件的编码是不是utf-8?我看你xml的编码是gb2321~~
      

  5.   

    两个应该保持一致,要么都是gb2312,要么都是utf-8
      

  6.   


    我改成utf-8后依然是0,咋回事了。。我去看看我IE版本。
      

  7.   

    应该不会啊,我也是用ie6测试的
    那我把测试的文件发给你看下吧,我就只改了个编码:<?xml version="1.0" encoding="utf-8" ?>
    <LeavWord>
      <Note>
        <name>sky</name>
        <content>就大方过的</content>
        <time>1990/02/11</time>
      </Note>
       <Note>
        <name>sky1</name>
        <content>就大方过的1</content>
        <time>1990/02/12</time>
      </Note>
    </LeavWord><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script type="text/javascript">
    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{   
                alert('Your   browser   cannot   handle   this   script');    
            }   
        return xmlDoc;   

    function _sd_Post() {
            var xmlDoc=new loadXML("w.xml"); 
    //alert(String(xmlDoc.xml));
            var a=xmlDoc.getElementsByTagName('Note');//文件加载成功!
            alert(a.length);
                     
        }</script>
    </head><body>
    <input type="button" value="test" onclick="_sd_Post();" />
    </body>
    </html>
      

  8.   


       <script type="text/javascript">
    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{   
                alert('Your   browser   cannot   handle   this   script');    
            }   
        return xmlDoc;   

        function _sd_Post() {
            var xmlDoc=new loadXML("w.xml"); 
              var a=xmlDoc.getElementsByTagName('Note');//文件加载成功!
      var ss=a[0].getElementsByTagName("name")[0].firstChild.data;
                      alert(a.length);
      alert(ss);
                     
        }</script>
    </head><body>
      <input type="button" onclick="_sd_Post();" />
    </body>
    把你的html和xml放在一起,firefox和IE我都试过了,可以用的
    alert(a.length);  提示2
    alert(ss);        提示sky
      

  9.   

    那我就没法了,没改编码时,是弹出0,但是改了过后,我这ie和ff都弹出2
      

  10.   

    你把我贴出来的代码的这句//alert(String(xmlDoc.xml));注释去掉,在ie下运行看看,看能弹出完整的xml文件不?
      

  11.   

    我桌面上有w.xml,为何为空?
      

  12.   

    不是吧,在我机器上完全运行没问题的啊
    你html和xml是放一起的吗?你用alert测试下看到哪步出错了啊?