FlashでXPath

FlashXML文書を操作する時、いちいちfirstChild.childNodes[0]...などとノードを辿っていくのは馬鹿馬鹿しい。FlashでもXPathを使えたような気がしないでもなかったなあ。 と気になってXPathのクラスファイルを探してたら、なあんだ、XPathを使えるじゃないか、Flash MX 2004で!ぺろっとインポートするだけで使えるんです。

import mx.xpath.XPathAPI;
var rssfeed_xml = new XML();
rssfeed_xml.ignoreWhite = true;
rssfeed_xml.load("http://bitmap.dyndns.org/blog/index.rdf");
rssfeed_xml.onLoad = function(success) {
    if (success) {
        var titlePath:String = "/rdf:RDF/item/title";
        title_array = mx.xpath.XPathAPI.selectNodeList(this.firstChild, titlePath);
        for (var i = 0; i<title_array.length; i++) {
            trace(title_array[i].firstChild.nodeValue);
        }
    } else {
        trace("error loading XML");
    }
};

出力したら、しっかりとこの blog の EntryTitle だけリストアップ出来ました。すごい!

追記

上記APIXML関連のコンポーネントがライブラリに無いと使えない(?)ようなので、 http://www.xfactorstudio.com/ のパッケージを使ったほうが良いかも知れない。