Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将XML解析为HTML/JS_Javascript_Html_Xml_Dom_Xmlhttprequest - Fatal编程技术网

Javascript 将XML解析为HTML/JS

Javascript 将XML解析为HTML/JS,javascript,html,xml,dom,xmlhttprequest,Javascript,Html,Xml,Dom,Xmlhttprequest,我正在进行XML到HTML的转换,但无法将其转换为HTML。我想要的是读取xml文件,然后使用每个元素和属性,在HTML表视图中显示。但这是我的尝试,没有成功 这是我的密码 HTML var xhttp=newXMLHttpRequest(); xhttp.onreadystatechange=函数(){ 如果(xhttp.readyState==4&&xhttp.status==200){ myFunction(xhttp); } }; open(“GET”,“datafile.xml”,

我正在进行XML到HTML的转换,但无法将其转换为HTML。我想要的是读取xml文件,然后使用每个元素和属性,在HTML表视图中显示。但这是我的尝试,没有成功

这是我的密码

HTML


var xhttp=newXMLHttpRequest(); xhttp.onreadystatechange=函数(){ 如果(xhttp.readyState==4&&xhttp.status==200){ myFunction(xhttp); } }; open(“GET”,“datafile.xml”,true); xhttp.send(); 函数myFunction(xml){ var xmlDoc=xml.responseXML; var x=xmlDoc.getElementsByTagName(“位置”)[2]; var txt=x.getAttribute(“desc”); document.getElementById(“demo”).innerHTML=txt; }
XML文件-datafile.XML


请提供一些建议,说明我哪里出了问题,以及如何解决问题。

试试这句话


var x=xmlDoc.getElementsByTagName(“位置”)[0]

您的XML中只有一个
location
节点,但您正试图使用
[2]
访问不存在的第三个节点。此外,如果您的XML字面上包含
乡村俱乐部和温布利公园
,则它无效-这里有一个方便的链接:
<!DOCTYPE html>

<html>
<body>

<p id="demo"></p>

<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (xhttp.readyState == 4 && xhttp.status == 200) {
        myFunction(xhttp);
    }
};
xhttp.open("GET", "datafile.xml", true);
xhttp.send();

function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    var x = xmlDoc.getElementsByTagName("location")[2];
    var txt = x.getAttribute("desc");
    document.getElementById("demo").innerHTML = txt; 
}
</script>

</body>
</html>
<resultSet xmlns="urn:trimet:arrivals" queryTime="1460524583363">
    <location desc="Country Club & Wembley Park" dir="Westbound" lat="45.423844983607" lng="-122.697651868185" locid="1233"/>

    <arrival block="7867" departed="false" dir="1" status="estimated" estimated="1460528004000" fullSign="78 Beaverton TC" piece="1" route="78" scheduled="1460528004000" shortSign="78 To Beaverton TC" locid="1233" detour="false">
        <blockPosition feet="74966" at="1460524562000" heading="175" lat="45.4768926" lng="-122.8055493">
            <trip desc="Lake Oswego Transit Center" dir="0" route="78" tripNum="6322277" destDist="72719" pattern="10" progress="6417"/>
            <trip desc="Beaverton TC 78 Bay" dir="1" route="78" tripNum="6322387" destDist="8664" pattern="6" progress="0"/>
        </blockPosition>
    </arrival>

    <arrival block="7868" departed="false" dir="1" status="scheduled" fullSign="78 Beaverton TC" piece="1" route="78" scheduled="1460552534000" shortSign="78 To Beaverton TC" locid="1233" detour="false"/>

    <arrival block="3767" departed="false" dir="0" status="scheduled" fullSign="37 Lake Grove to Tualatin Park & Ride" piece="1" route="37" scheduled="1460557107000" shortSign="37 To Tualatin P&R" locid="1233" detour="false"/>

</resultSet>