2016-12-01 1 views
0

にDOMParserにして子要素の属性を読み取るためにどのように私は、このXMLにJavaScriptの

<zone name="main"> 
     <card number="4" price="0" name="Urza's Tower"/> 
     <card number="4" price="0" name="Urza's Power Plant"/> 
     <card number="4" price="0" name="Urza's Mine"/> 
     <card number="4" price="0" name="Urza's Avenger"/> 
     <card number="1" price="0" name="Urza's Miter"/> 
     <card number="4" price="0" name="Howling Mine"/> 

を持っていると私は名前の属性を読みたいです。私はこれを試してみたが、それは動作しません:

var cards = xmlDoc.getElementsByTagName("zone")[0].childNodes; 
     for (var i = 0; i < cards.length; i++) { 
     console.log(cards[i].getAttribute("name")); 
     } 

私はそれがすべての属性を示し、デバッガでcards[i]を表示します。私はそれらにアクセスできないようです...

ありがとう!

+0

'VARカード= ...' VARカードは '= xmlDoc.getElementsByTagName( "カード")を変更してみてください。 '。 – phoa

答えて

1

問題のコードは、card要素ノードだけでなく、card要素間のテキストノードも取得していません。この問題のコードは.childNodesです。ちょうどcard要素ノードを取得するには

、このように、代わりに.childrenを使用します。

var cards = xmlDoc.getElementsByTagName("zone")[0].children; 
     for (var i = 0; i < cards.length; i++) { 
     console.log(cards[i].getAttribute("name")); 
     }