在javascript中解析多个子节点XML
我有一个XML文件,如下所示在javascript中解析多个子节点XML,javascript,xml,Javascript,Xml,我有一个XML文件,如下所示 <listings> <list> <fruitlist> <name>Apple </name> <price>1$ </price> </fruitlist> <vegelist> <vegename>Tomato</vegename> <cost>2$</cost>
<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中连续解析包含多个子节点的整个文件。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
...
}
这有帮助 我不知道您是否有可能使用jQuery,但是使用它会很容易 例如,您可以执行以下操作:
$(xml).find("vegename").each(function(index,vegename){
console.log( $(vegename).text() ) // Will give you "Tomato" and "Potato"
})
有很多关于jQuery解析的教程。您的xml包含错误。您必须关闭vegelist元素。