2014-09-21 58 views
0

我有一个XML文件,如下所示。在javascript中解析多个子节点XML

<listings> 
<list> 
    <fruitlist> 
    <name>Apple </name> 
    <price>1$ </price> 
    </fruitlist> 
    <vegelist> 
    <vegename>Tomato</vegename> 
    <cost>2$</cost> 
    <vegelist> 
</list> 
<list> 
    <fruitlist> 
    <name>Orange </name> 
    <price>1$ </price> 
    </fruitlist> 
    <vegelist> 
    <vegename>Potato</vegename> 
    <cost>2$</cost> 
    <vegelist> 
</list> 
</listings> 

如何在javascript中解析具有多个子节点的整个文件。

+0

您的xml包含错误。您必须关闭vegelist元素。 – 2014-09-21 08:15:28

回答

0

示例使用Javascript:

function loadXMLDoc(filename) 
{ 
if (window.XMLHttpRequest) 
    { 
    xhttp=new XMLHttpRequest(); 
    } 
else // code for IE5 and IE6 
    { 
    xhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xhttp.open("GET",filename,false); 
xhttp.send(); 
return xhttp.responseXML; 
} 
//Open your xml file 
    xmlDoc=loadXMLDoc("mydemo.xml"); 
    document.write(xmlDoc.getElementsByTagName("list")[0].childNodes[0].nodeValue); 
    ... 

,或者,如果你通过你的结果要循环,然后尝试:

var root = xmlDoc.getElementsByTagName('list'); 
for(var i=0, i<root[0].childNodes.length,i++){ 
    //Action with loop results 
... 
} 

w3schools tutorial帮助!

0

我不知道你是否有可能使用jQuery,但它会很容易。

举例来说,你可以做的东西,如:

$(xml).find("vegename").each(function(index,vegename){ 

    console.log($(vegename).text()) // Will give you "Tomato" and "Potato" 

}) 

有很多教程在那里与jQuery的解析。