2013-09-27 23 views
0

我從XML文件中獲取數據,並將其顯示到HTML文件XML文件包含節點 的子子兒我的XML文件解析來自XML錯誤到HTML中使用的JavaScript

<?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> 

的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> 

但圖像節點不能正確顯示它總是迭代4次在loop

+0

'xmlDoc.getElementsByTagName'搜索整個XML文檔,所以當你調用'xmlDoc.getElementsByTagName(「圖像」)',查詢並不僅限於當前的項目。 – David

+0

所以我應該在這種情況下做什麼? @大衛 – Blu

回答

0

1 - 您的XML在最後一行沒有</projects>
2 - var lengthImage = xmlDoc.getElementsByTagName("images")[i].childNodes.length; //childNodes does't need "[0]"