Home > AS3 > マッシュアップのための第二歩目:FlashでAPIからXMLを呼んだときはxmlnsに注意する(2)

マッシュアップのための第二歩目:FlashでAPIからXMLを呼んだときはxmlnsに注意する(2)

  • Posted by: ryow
  • 2008年9月 4日 23:27
  • AS3

このエントリの続きです。今回はHotPepperAPIを使って適当なお店の名前と住所とキャッチコピーをゲッツします。

いきなりハマる

普通にXMLをE4Xで解釈して trace(dataXML.shop[i].catch) と書くとエラーが出ます。これはどういうことか。クーピーさんのこのエントリによれば、catch というのは try~catch の名前とバッティングしてしまうから、らしいです。で、解決方法も書いてあるんですがよくわかりません。

trace(xml.ns::["catch"][0]); // 出力 :: Flasher 募集中!

こういう書き方でいいらしいんですけど、このns::をどこにつけたらいいのかが、このエントリからはサッパリ分かりません。たとえば、xml本体が dataXML.shop[i].catch だった場合はどこにns::をつけるの? ということです。

困ったときはtrick7

で、探してみたらやっぱりteraさんが書いてました。プレゼンも面白いしイケメンだし有名人だし凄いです。激アツじゃないですか。

dataXML.shop[i].ns::["catch"]

結論から書くとこういう感じです。
これを使ったサンプルとコードは以下。

import fl.containers.ScrollPane
import flash.utils.escapeMultiByte;
Security.loadPolicyFile("http://webservice.recruit.co.jp/hotpepper/crossdomain.xml");

var url:String ="http://webservice.recruit.co.jp/hotpepper/gourmet/v1/?key=";
var key:String ="リクルートAPIキーを取得してね!!";
var service:String = "&keyword=";

var dataXML:XML;
function loadXML():void {
	var req:String ="たこ焼き"
	var hpRequest:String = escapeMultiByte(req);

	var _url:URLRequest = new URLRequest(url+key+service+hpRequest);
	var ldr = new URLLoader();
	ldr.addEventListener(Event.COMPLETE,completeHandler);
	ldr.load(_url);
}
function completeHandler(e:Event):void {

	dataXML = new XML(e.target.data);
	namespace ns= 'http://webservice.recruit.co.jp/HotPepper/'
	use namespace ns;

	for(var i:uint=0;i<dataXML.shop.length();i++){
		var panel:MovieClip = new KekkaPanel()
		panel.t1_txt.text =dataXML.shop[i].name
		panel.t2_txt.text =dataXML.shop[i].address
		panel.t3_txt.text =dataXML.shop[i].ns::["catch"]
		panel.y = 80 * i
		addChild(panel)
	}
}

loadXML();

Comments:0

Comment Form

Trackbacks:0

TrackBack URL for this entry
http://ryow.net/mt/mt-tb.cgi/359
Listed below are links to weblogs that reference
マッシュアップのための第二歩目:FlashでAPIからXMLを呼んだときはxmlnsに注意する(2) from ryow.net Blog

Home > AS3 > マッシュアップのための第二歩目:FlashでAPIからXMLを呼んだときはxmlnsに注意する(2)

About

りょうどっとねっとブログ

Twitter :ryownet

はてな :ryownet

Search

Return to page top