XMLParser

  • ActionScript?2.0でE4X風にアクセスできるようにXMLを変換するクラスです。
  • MITライセンスでー

ダウンロード

AS2用

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"]]

のような配列が返っています。

弄ってる人

勝手にサンプルをコミットしてくれたり、勝手にバグを修正してくれたり、勝手に機能を追加してくれたり、勝手に連携クラスをコミットしてもらえたりすると両手を上げて喜びます。

何かあればフォーラムチケットでどうぞ