0

我试图制作一个脚本,该脚本返回具有特定 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);
}

它写了所有的条目......

4

2 回答 2

1

尝试

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

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

于 2013-04-29T08:05:15.993 回答
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/

于 2013-04-29T07:19:54.657 回答