在javascript中解析多个子节点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>

我有一个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中连续解析包含多个子节点的整个文件。

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元素。