在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?
答案 0 :(得分:2)
尝试使用xml.node.attribute(attr)
。