处理E4X中的命名空间

时间:2011-12-14 22:20:16

标签: flex xml-namespaces e4x

我正在尝试从flex应用程序中的命名空间xml文件中获取数据。有一个根命名空间(xmlns =“blah”)和另一个命名空间(xmlns:i =“blah”),我可以使用以下内容访问大多数标签:

var ns:Namespace = doc.namespace();
var result:XMLList = doc.ns::element;

但是,有几个标签可能会在应用程序中发生变化,我不想对它们进行硬编码,可能使用元素方法:

var result:XMLList = doc.elements(configuredField);

有没有办法使用elements方法获取带有命名空间的元素,或者使用参数以类似的方式在flex中获取XML元素?

1 个答案:

答案 0 :(得分:1)

如果我了解您,您可以使用动态属性( [] 表示法)来获取节点。

var x:XML=
<root xmlns:i="testNS">
    <elem1>
        hhh
    </elem1>
    <i:elem2>
        123123
    </i:elem2>
</root>;
var elemName:String="elem2";
var ns:Namespace=x.namespace("i");
var tags:*=x.ns::[elemName]; //will contain all "elem2" tags in "i" namespace