MXMLTest05 External XML Read Test (取得した外部XMLから指定したデータを取り出す)
forked from MXMLTest04 External XML Read Test (diff: 22)
ActionScript3 source code
/**
* Copyright siouxcitizen ( http://wonderfl.net/user/siouxcitizen )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/xu7N
*/
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="500" height="500" backgroundColor="#FFFFFF">
<mx:Script>
<![CDATA[
//Yahooショッピングから"出石そば"で検索した結果(XML)をテキストエリアに表示
private var query:String = "出石そば";//検索キーワード
private var URL:String = "http://shopping.yahooapis.jp/ShoppingWebService/V1/itemSearch?appid=uQ_E1kmxg64.0fo1fkMwTnvcEmBn.foaHDXp0MF8WvUXD3jQcDaDIAuC0b6zRFmh3BT2umN6&query=" + escapeMultiByte(query);
private var loader:URLLoader;
private var xmlData:XML;
//↓ 以下、今後の自分へ。。。 相当詰まった。。。
//クロスドメイン処理用crossdomain.xml、Yahooの場合は既に準備してくれている。。。
//外部XMLデータ使用時は名前空間の設定を忘れないように。。。
private var ns:Namespace = new Namespace("urn:yahoo:jp:itemSearch");
private function testTextArea():void {
//外部XML処理中はボタンを不活性化
btnTest.enabled = false;
var request:URLRequest = new URLRequest(URL);
request.url = URL;
loader = new URLLoader();
loader.addEventListener(Event.COMPLETE, completeHandler);
try {
loader.load(request);
} catch (error:Error) {
trace("Unable to load requested document.");
}
}
private function completeHandler(event:Event):void {
xmlData = new XML(loader.data);
default xml namespace = ns; //名前空間設定
//指定したデータをXMLから取り出して表示
txtData.text += "\n\n\商品タイトル&URLデータ表示 -> ";
for each(var element:Object in xmlData.Result.Hit){
var titleName:String = element.Name;
var imgURL:String = element.Image.Small;
var linkURL:String = element.Url;
var appdTxt:String = "\n\nタイトル: " + titleName
+ "\n画像URL: " + imgURL
+ "\nリンク先URL: " + linkURL;
txtData.text += appdTxt;
}
//btnTest.enabled = true; //外部XML処理後にボタンを活性化、予定。。。
}
]]>
</mx:Script>
<mx:Button id="btnTest" click="testTextArea();" x="10" y="10" label="ボタン" enabled="true"/>
<mx:TextArea id="txtData" x="10" y="46" width="450" height="400">
<mx:text>
<![CDATA[取得した外部XMLから指定したデータを取り出すテスト]]>
</mx:text>
</mx:TextArea>
</mx:Application>