给定以下示例 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;
我特别想弄清楚如何消除每次都必须设置默认命名空间......