XML操作

XML操作の仕様がAS2とAS3では変わっていたことに昨日一日かかってようやく知った。orz

AS3になって結構変わった

AS2の頃、firstChild等でエレメントにアクセスしていたが、AS3になって随分変わったようだ。

例として以下を挙げる。

var xml:XML =
<data>
  <item id='1'>
    <name>ギブソン・レスポール・スタンダード</name>
    <price>250,000</price>
  </item>
  <item id='2'>
    <name>もう一声ギター</name>
    <price>50,000</price>
  </item>
</data>

上記XMLに対して、もう一声ギターの値段を取得するためには、以下ような表記となる。

//ex1
xml.item.(name=="もう一声ギター").price
//50,000

//ex2
xml.item[1].price
//50,000

『.エレメント名』でアクセスできると言うのは感動だった。

『(条件)』も使用できるというのも感動だ。

if文のように>=等も使用できるみたい。

また、itemの属性値を取得する際には、以下の表記となる。

xml.item.@id
//12

『@属性名』でアクセスができる。

少し疑問も残るが。。。*1

*1:itemの属性なのに『.』が必要なのがピンとこない。それなら『.@属性名』でアクセスができると言われた方が幾分かマシだなぁ。