获取父节点具有ID​​的子节点

时间:2013-04-29 07:10:43

标签: javascript xml

我曾尝试制作一个脚本,该脚本返回具有特定ID属性的元素的子节点,但它在我做的每一种方式都失败了。可以帮我吗?

我的XML文档是这样的:

<prices>
   <car id="1">
      <name>Toyota</name>
      <price_day>250</price_day>
   </car>
   <car id="2">
      <name>Opel</name>
      <price_day>100</price_day>
   </car>
</prices>

我想使用JavaScript来获取id="1"的汽车数据。 我的最后一次尝试是这样的:

var x=xmlDoc.getElementsByTagName("car");
for (i=0;i<x.length;i++)
{
   document.write(x[i].getElementsByTagName("name")[0].childNodes[0].nodeValue);
}

它写下所有条目......

2 个答案:

答案 0 :(得分:1)

var x= xmlDoc.getElementsByTagName("car")[0].getElementsByTagName("name")[0].childNodes[0].nodeValue;

http://jsfiddle.net/BKazh/4/

答案 1 :(得分:0)

试试这个:

var txt='<prices><car id="1"><name>Toyota</name><price_day>250</price_day></car>   <car id="2"><name>Opel</name><price_day>100</price_day></car></prices>';
if (window.DOMParser)
{
  parser=new DOMParser();
  xmlDoc=parser.parseFromString(txt,"text/xml");
}
else // Internet Explorer
{
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async=false;
  xmlDoc.loadXML(txt);
} 
var x=xmlDoc.getElementsByTagName("car");
for (i=0;i<x.length;i++)
{
    if(x[i].getAttribute('id')=='1')
    {
        alert(x[i].getElementsByTagName("name")[0].childNodes[0].nodeValue);
    }
}

小提琴 http://jsfiddle.net/BKazh/2/