仅使用Javascript读取XML文件

时间:2017-02-21 18:16:00

标签: javascript html xml parsing xml-parsing

我有一个需要使用Javascript读取的XML文件。然后需要在3个标签标签内显示要读取的文本。

我可以读取XML文件但是当我尝试在3个标签内显示文本时,它只显示从XML文件中读取的最后一件事,在这种情况下是#34; Pavarotti Gala Concert"。

我希望能够打印:

标签1 =" Empire Burlesque"

标签2 ="隐藏自己的心脏"

标签3 ="帕瓦罗蒂晚会音乐会"

我做错了什么?

XML文件

<?xml version="1.0" encoding="UTF-8"?>
<CATALOG>
    <CD>
        <TITLE>Empire Burlesque</TITLE>
        <ARTIST>Bob Dylan</ARTIST>
    </CD>
    <CD>
        <TITLE>Hide your heart</TITLE>
        <ARTIST>Bonnie Tyler</ARTIST>
    </CD>
    <CD>
        <TITLE>Pavarotti Gala Concert</TITLE>
        <ARTIST>Luciano Pavarotti</ARTIST>
    </CD>
</CATALOG>

JAVASCRIPT

       if (window.XMLHttpRequest) {
           xmlhttp = new XMLHttpRequest();
        } else {
           xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }

        xmlhttp.open("GET", "text.xml", false);
        xmlhttp.send();
        xmlDoc = xmlhttp.responseXML;

        var x = xmlDoc.getElementsByTagName("CD");

        for ( i = 0; i < x.length; i++) {

            var titleName = x[i].getElementsByTagName("TITLE")[0].innerHTML;

            document.getElementById("text1").innerHTML = titleName ;
            document.getElementById("text2").innerHTML = titleName ;
            document.getElementById("text3").innerHTML = titleName ; 
    }     
}

HTML

<label id="text1"></label>
<label id="text2"></label>

1 个答案:

答案 0 :(得分:1)

  

我可以读取XML文件但是当我尝试在里面显示文本时   3个标签它只显示我从XML文件中读取的最后一件事   在这种情况下是“帕瓦罗蒂晚会音乐会”。

在循环中,您将x = [2,3,4,5,6,7]; y(numel(x)*2) = 0; % preallocate y y(1:2:end) = x; y(2:2:end) = -x; 设置为所有x = [2,3,4,5,6,7]; y(2:2:2*numel(x)) = -x; y(1:2:end) = x; titleNametext1,因此它们都等于最后一项是有意义的。

尝试更换:

text2

使用:

text3

修改

 document.getElementById("text1").innerHTML = titleName ;
 document.getElementById("text2").innerHTML = titleName ;
 document.getElementById("text3").innerHTML = titleName ;