XMLの名前空間

ActionScript3でXMLを解析するときのメモ。

外部のXMLを読み込んで目的のノードにアクセスする際に、”employees.employee.name” のようにドットオペレータとノード名でアクセスできなくて「どうしてだろう・・・?」と悩んだ。
結論から言うと、XMLに xmlns が指定されていることが原因だった。

xmlnsが指定されると、XMLの名前空間がそれになるらしい。
名前空間が異なるので、ノード名でアクセスできなかったというわけ。

で、どうすればいいかというと、

var xml:XML = new XML(xmlLoader.data);
default xml namespace = rssXML.namespace("");

...XML解析...

default xml namespace = null;

として、デフォルトの名前空間をXMLのそれに設定すればOK。
解析が終わったら名前空間を戻しておく。

Leave a Reply