2011.07.16 | 

こんばんはムーチョです。
最近、暑苦しいといわれる機会が増えました。
夏ですねぇ。

さてさて。
FlashのXML操作についてですが、大昔に比べて使いやすくなりましたし、
ループ処理で総当たりにするときはいいんですが、
アトリビュートのIDを指定してひとつだけデータを参照したい時など、
Objectに変換した方が使いやすい場面なんかもあったりします。

そんな時のための書き方を見つけたのでメモ


var xml:XML =
<root>
	<item id="1">
		<name>test1</name>
		<url>www.example1.com</url>
	</item>
	<item id="2">
		<name>test2</name>
		<url>www.example2.com</url>
	</item>
	<item id="3">
		<name>test3</name>
	</item>
</root>;

//「item」ノード内の「name」ノードの内容が「test1」の「url」ノードの内容を取得
trace(xml.item.(name == "test1").url);
//www.example1.com

//「item」ノード内の「id」属性が「2」の「url」ノードの内容を取得
trace(xml.item.(@id == 2).url)
//www.example2.com


ちょっとだけID指定が入るような時に便利
ちょっと処理速度が速くなさそうな気がしないでもないので、
時間がある時にでも、ベンチマークテストをしてみたいと思います。
その時はまたレポートしたいと思います。