简体   繁体   English

使用Javascript将错误从XML解析为HTML

[英]Parsing Error from XML to Html Using Javascript

i am getting data from XML file and show it into HTML file the XML files contains sub-sub-child of nodes My XML Files 我从XML文件获取数据并将其显示为HTML文件, XML文件包含节点的子子项。我的XML文件

<?xml version="1.0" encoding="utf-8"?>
<projects>
<project title="title1" subtitle="subtitle1">
    <text>First Tesxt</text>
    <images>
        <image url="1/176.png"></image>
        <image url="1/178.png"></image>
        <image url="1/173.png"></image>
    </images>
</project>
<project title="title2" subtitle="subtitle2">
    <text>Second Test</text>
    <images>
        <image url="2/164.png"></image>
        <image url="2/175.png"></image>
        <image url="2/1767.png"></image>
    </images>
</project>

The HTML Javascript Part is HTML Javascript部分是

<html>
<head>
</head>
<body>
<script>
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("projects.xml");

var length = xmlDoc.getElementsByTagName("project").length;
for(i=0; i<length;i++)
{
    alert(xmlDoc.getElementsByTagName("project")[i].getAttribute("title"));
    alert(xmlDoc.getElementsByTagName("project")[i].getAttribute("subtitle"));
    alert(xmlDoc.getElementsByTagName("text")[i].childNodes[0].nodeValue);
    var lengthImage = xmlDoc.getElementsByTagName("images")[i].childNodes[0].length;
    for(var j=0; j<lengthImage; j++)
    {
        alert(xmlDoc.getElementsByTagName("image")[j].getAttribute("url"));
    }
}
</script>
</body>
</html>

But the images node cannot display correctly it always iterates 4 time in loop 但图像节点不能正确显示它总是迭代4次在loop

1 - Your XML doesn't have </projects> on the last line. 1-您的XML在最后一行没有</projects>
2 - var lengthImage = xmlDoc.getElementsByTagName("images")[i].childNodes.length; //childNodes does't need "[0]" 2- var lengthImage = xmlDoc.getElementsByTagName("images")[i].childNodes.length; //childNodes does't need "[0]" var lengthImage = xmlDoc.getElementsByTagName("images")[i].childNodes.length; //childNodes does't need "[0]"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM