如何使用String变量访问XML属性的值?如何将其应用于过滤?

时间:2011-08-01 12:11:46

标签: xml actionscript-3 flex e4x

在flex中使用e4x:

var attr : String = "foo";
var xml : XML = 
    <resultSet>
       <node foo="1"/>
    </resultSet>;

如何使用变量“attr”访问

xml.node.@foo 

我以为我可以用

来做
xml.node.@[attr]

但这似乎不起作用。如何通过这样的动态值访问此属性?

编辑: 两者

xml.node.@[attr];

xml.node.attribute(attr);
正如Constantiner建议的那样工作。

更新

假设我有一个这种形式的XMLList:

var bar:XML = 
    <resultSet>
         <node>value</node>
    </resultSet>;

我想通过将“foo”属性与bar中节点的“value”匹配来过滤上面的原始xml。

基本上我想要一个原始xml的子列表,以便

xml.node.@foo == bar.value 

对于原始值中的每个xml行

正如康斯坦纳提到的那样,我可以用foo中的值过滤原始列表,但是如果我想过滤多个值呢?

我可以这样做:

xml.node.(bar.node.contains(attribute(foo)) ? attribute(foo) : null);

或许是一个更干净的方法而不是null?

1 个答案:

答案 0 :(得分:2)

尝试使用xml.node.attribute(attr)