23.XMLではまった!2
XMLが読めないぞ?!
某社の提供しているAPIから得られるXMLを読もうとしたらうまく読めない、、、?
なんで?XMLの各要素へのアクセスは今までやってきたことなのに?
読み込んだXMLをそのまま表示させると、最初の方に
<results xmlns="http://www.xxx.co.jp/yyy/">
なんて怪しいのがある。
検索すると、、、こ、これが、名前空間ってやつかい!?
ということでメモしておこうっと。
名前空間のお話
参考にしたページを一読すればこの必要性がわかります。
そういうことかあ、と納得した後はさてどうすれば読めるのよ?ってことですが、検索するとみんな同じように躓いているのですぐに解決方法は見つかることでしょう。
私の場合は以下のようにして読み込むことができました。
読み込み部分を記述するとこんな感じ。
結局デフォルトの名前空間を設定するため、下の※の行を追加するだけです。
var urlloader:URLLoader = new URLLoader();
var urlrequest:URLRequest = new URLRequest("http://〜");
urlloader.load(urlrequest);
urlloader.addEventListener(Event.COMPLETE, completeHandler);
function completeHandler(event:Event):void {
var myxml:XML = XML(urlloader.data);
default xml namespace = new Namespace("http://www.xxx.co.jp/yyy/");//※
trace("myxml.api_version="+myxml.api_version);
}
var urlrequest:URLRequest = new URLRequest("http://〜");
urlloader.load(urlrequest);
urlloader.addEventListener(Event.COMPLETE, completeHandler);
function completeHandler(event:Event):void {
var myxml:XML = XML(urlloader.data);
default xml namespace = new Namespace("http://www.xxx.co.jp/yyy/");//※
trace("myxml.api_version="+myxml.api_version);
}
最初この※の行のxmlというのがオブジェクトのことでここで言うところのmyxmlに相当するんかいな?とかいろいろやってました(^^;
参考サイト