XMLParser
- ActionScript?2.0でE4X風にアクセスできるようにXMLを変換するクラスです。
- MITライセンスでー
ダウンロード
svn co http://snippets.libspark.org/svn/as2/XMLParser/src/ XMLParser
あとで、mxpを作成する予定です。
サンプル
import jp.cellfusion.xml.XMLParser
var xml:XML = new XML("<xml arrayTags='img'>" +
"<person age='18'>" +
"<name><![CDATA[name1]]></name>" +
"<hobby><![CDATA[sleep]]></hobby>" +
"<list>" +
"<img src='image1.jpg' />" +
"<img src='image2.jpg' />" +
"</list>" +
"</person>" +
"<person age='20'>" +
"<name><![CDATA[name2]]></name>" +
"<hobby><![CDATA[reading]]></hobby>" +
"<list>" +
"<img src='image3.jpg' />" +
"</list>" +
"</person>" +
"</xml>");
// XMLを変換
var data:Object = XMLParser.toObject(xml);
同じノード名がある場合には勝手に配列に変換して data.person[0].name のように取得できます。 必ず配列にしたい場合は、rootNode(今回はxmlノード)にarrayTags属性に配列に変換したいノード名をカンマ区切りで入力してください。
一番上のpersonノードのhobbyノードの中を取得するには
trace(data.person[0].hobby);
結果
sleep
各personノードのnameノードの中を取得
trace(data.person.name);
結果
name1, name2
各personノードのage属性を取得
trace(data.person.atAge);
結果
18, 20
各personノードのlistノードの中のimgノードのsrc属性を取得
trace(data.person.list.img.atSrc);
結果
image1.jpg, image2.jpg, image3.jpg
trace結果は一つの配列が返って来ているように見えますが、実際は
[["image1.jpg", "image2.jpg"], ["image3.jpg"]]
のような配列が返っています。
弄ってる人
- cellfusion a.k.a Mk-10
勝手にサンプルをコミットしてくれたり、勝手にバグを修正してくれたり、勝手に機能を追加してくれたり、勝手に連携クラスをコミットしてもらえたりすると両手を上げて喜びます。

