当倍数可能存在时,根据元素值查找XML节点

时间:2016-01-11 17:54:21

标签: xml actionscript-3 xmllint

var xmlData:XML = XML(<data>
    <item>
        <type atr="a">AAA</type>
        <type atr="b">BBB</type>
    </item>
    <item>
        <type atr="c">CCC</type>
    </item>
</data>);


trace(xmlData.item.(type=='AAA')); // does not work
trace(xmlData.item.(type=='CCC')); // works
trace(xmlData.item.type.(@atr=='a').parent()); // works
trace(xmlData.item.type.(@atr=='c').parent()); // works

除非我使用属性,否则当兄弟姐妹出现时,我似乎无法根据其值获取节点。

当存在未知数量的元素时,是否有办法根据值检索项目,而无需手动循环或使用属性?

2 个答案:

答案 0 :(得分:1)

我找到了一种方法,主要是随意尝试......

xmlData.item.type.(child(0)=='BBB').parent();

xmlData.item.type.(children()=='BBB').parent();

答案 1 :(得分:0)

您可以使用XMLList/contains

trace(xmlData.item.(type.contains(<type atr="a">AAA</type>)))
// or
trace(xmlData.item.(type.contains("AAA")))