0

非常简单的一段代码:

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
        <script type="text/javascript">          
            function loadXMLDoc(dname)
            {
                if (window.XMLHttpRequest)
                {
                    xhttp = new XMLHttpRequest();
                }
                else
                {
                    xhttp = new ActiveXObject("Microsoft.XMLHTTP");
                }
                xhttp.open("GET",dname,false);
                xhttp.send();
                return xhttp.responseXML;
            }


            xmlDoc = loadXMLDoc("feedback.xml");

            x=xmlDoc.getElementsByTagName("quote");
            for (i=0;i<x.length;i++)
            { 
                document.write(x[i].childNodes[0].nodeValue);
                document.write("<br>");
            }
        </script>    
    </body>
</html>

我正在加载如下所示的 XML 文件“feedback.xml”:

<feedback>
   <quote id="1">"This is a quote."</quote>
   <quote id="2">"This is another quote."</quote>
</feedback>

我从http://www.w3schools.com/dom/tryit.asp?filename=try_dom_list_loop获得了代码,但没有真正发生。当我试图alert(x)检查里面有什么时,我得到一个“[object HTMLCollection]”。但是,当我想检查时,alert(x[0])我得到“未定义”。任何想法为什么这不起作用?看起来很简单,XML 文件与这个 html 文件在同一个文件夹中,并且 Firebug 不会抛出任何错误。

4

1 回答 1

0

添加<?xml version="1.0" encoding="ISO-8859-1"?>到 xml 的顶部是我最初的建议。但是,我已经在 Ubuntu 中检查了我的 Firefox,并且您的代码正在运行。我试图更改编码可能是问题所在,但事实并非如此。

本来我以为没有标题的 XML 文档不会被 Javascript 识别为同一个对象。但同样,在我的 Ubuntu 上,Firefox 没有任何区别,文档是 XMLDocument,列表是 HTMLCollection ...

所以我真的很困惑什么是/是什么问题。

于 2013-02-25T15:25:29.873 回答