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 に答える