Flash ActionscriptでXMLを扱う:XPATHの使い方
先日のエントリーで「後で時間があるときに簡単な解説書きます。」と書いたので約束を果たします。
ActionscriptでXMLを扱う時はXPATHを使ってます。これを使うとXMLを読み込んで配列に展開してくれるので扱いが凄く楽になります。
簡単な使い方だけを解説します。ホントはもっと色々便利な使い方があるようなので覚えたら解説しますね。ちなみにこの写真日記を表示してるFlash(→見る)や、ニュース速報(→見る)でもこのXPATHを使ってRSSをパースしてます。
その前にここからXPath4AS2というActionScriptでXpathを使えるようにするライブラリをダウンロードしてください。
こんなデータがあるとします。
item.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<items>
<item name="iMac G5" price="150000">
<imageURL>images/imac.jpg</imageURL>
</item>
<item name="iBook G4" price="100000">
<imageURL>images/imac.jpg</imageURL>
</item>
</items>
このXMLへのアクセス方法
var myDoc = new XML();
myDoc.onLoad = getXML;
myDoc.load("item.xml");
function getXML():Void
{
var imageURL:Array = XPath.selectNodes(myDoc, "items/item/imgURL/text()");
var itemName:Array = XPath.selectNodes(myDoc, "items/item/@name/text()");
var itemPrice:Array = XPath.selectNodes(myDoc, "items/item/@price/text()");
}
読み込んだ後はこんな感じで複数のアイテムや属性値にもアクセス出来ます。
for(var i = 0; i < itemName.length; i++) {
trace("商品名:" + itemName[i]);
trace("価格:"+itemPrice[i]);
trace("商品画像のURL:" +imageURL[i]);
}
★おすすめ参考書★
●机の上に常備してます。
→FLASH ActionScript辞典 第2版
●日本語でOOP オブジェクト指向プログラミングを本格的に学ぶにはこれしかない。
→FLASH OOP
●英語が出来る方はこっちがおすすめです。Colin Moockが書いたActionScript2.0のバイブル。
→Essential Actionscript 2.0
●XMLあたりも基礎から勉強しとかないとやばそう。
→XML関連本人気ランキング
2006/2/22 水曜日コメント (5)
すみません、ちょっと教えて下さい。
myDoc.onLoad = getXML;
この処理は一体何をしているのでしょうか?
コメント by じびき — 2006/5/16 火曜日 @ 21:06:03
ども。
myDoc.load(”item.xml”);
でitem.xmlを読み込んでるんですが、
この読み込みが終了したときに getXMLというメソッドを実行しろと言う意味です。
コメント by 管理人 — 2006/5/16 火曜日 @ 23:43:03
質問です。
読み込んだ後、値を更新して吐き出すにはどうすればいいんですか?
コメント by gon — 2006/7/7 金曜日 @ 11:46:12
今更ながら・・・XPATH
今まで、FLASHでXMLを取得するときには自作のクラスを作って、それなりに簡単に取得できてたので満足していたわけですが、興味がてらにXPATHを使ってみ…
トラックバック by blog.enneaplanet.com — 2007/1/19 金曜日 @ 10:32:50
XPathライブラリ(解凍して出来たcomフォルダ?)は
どのディレクトリに置けばいいのでしょうか?
コメント by 通りすがり — 2008/4/8 火曜日 @ 17:43:27