次のサンプル XML を指定します (ここではハードコードされていますが、通常は外部ファイルから読み込みます)。
var myXML:XML = new XML('
<xmlout xmlns:ns1="http://some.namespace.com/ns1" xmlns:ns2="http://some.namespace.com/ns2" xmlns:ns3="http://some.namespace.com/ns3">
<data>
<item>
<ns1:id>some_id</ns1:id>
</item>
</data>
</xmlout>');
次のように、名前空間を名前空間オブジェクトとしてオブジェクトに格納しています。
var xmlNamespaces:Object = {};
for (var i:uint = 0; i < myXML.namespaceDeclarations().length; i++) {
var ns:Namespace = myXML.namespaceDeclarations()[i];
xmlNamespaces[ns.prefix] = new Namespace(ns.prefix, ns.uri);
}
私は次のようなことをしようとしています:
trace(myXML.data.item.xmlNamespaces["ns1"]::id.value);
これが可能かどうか、何か考えはありますか? 私は成功したことがありません。ありがとう!
編集:次を使用して、問題なくこれを実行できることに注意してください。
default xml namespace = xmlNamespaces.ns1;
var id:String = myXML.data.item.id;
私は特に、毎回デフォルトの名前空間を設定する必要をなくす方法を見つけようとしています...