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 の先頭に追加<?xml version="1.0" encoding="ISO-8859-1"?>することは、私の最初の提案でした。ただし、Ubuntu で Firefox を確認したところ、コードは正常に機能しています。おそらくそれが問題であるエンコーディングを変更しようとしましたが、そうではありませんでした。

元々、見出しのないXML文書はJavascriptに同じオブジェクトとして認識されないと思っていました。しかし、ここでも、私の Firefox の Ubuntu では違いはありませんでした。ドキュメントは XMLDocument で、リストは HTMLCollection です ...

だから本当に私は何が問題なのか/だったのか混乱しています。

于 2013-02-25T15:25:29.873 に答える