E4Xまじやばい
初めてのActionScript 3.0 ―Flashユーザーのためのステップアップガイドを読んでいたら、E4Xがやばすぎた。
いままではXMLをオブジェクトとして扱える機能だと思っていたけど、全然違った。
XML要素を作る
var xml = <product> <model stock="yes"> <name>foo</name> <price>100</price> </model> <model stock="no"> <name>bar</name> <price>200</price> </model> </product>;
へー、XMLをそのまま書けるのか。
子ノードへのアクセル
trace(xml.product.model.name); // -> ["foo","bar"]
リストが返ってくるのは多少驚きだけど、まだまだ大丈夫。
属性へのアクセス
trace(xml.product.@stock[0]); // -> ["yes"]
うん、属性は@だよね。普通、@は識別子に使えないけど、言語拡張なんだから使えてもいいよね。
条件式
trace(xml.model.(price < 150)); // -> ["foo"]
条件式まで書けるのか。すげーな。