当可能存在倍数时,根据元素值查找 XML 节点
find XML node based on element value when multiples may be present
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
当兄弟姐妹存在时,我似乎无法根据其值获取节点,除非我使用属性。
有没有办法在元素数量未知的情况下根据值检索项目,而无需手动循环或使用属性?
你可以使用 XMLList/contains:
trace(xmlData.item.(type.contains(<type atr="a">AAA</type>)))
// or
trace(xmlData.item.(type.contains("AAA")))
我找到了一种方法,主要是通过随机尝试...
xmlData.item.type.(child(0)=='BBB').parent();
或
xmlData.item.type.(children()=='BBB').parent();
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
当兄弟姐妹存在时,我似乎无法根据其值获取节点,除非我使用属性。
有没有办法在元素数量未知的情况下根据值检索项目,而无需手动循环或使用属性?
你可以使用 XMLList/contains:
trace(xmlData.item.(type.contains(<type atr="a">AAA</type>)))
// or
trace(xmlData.item.(type.contains("AAA")))
我找到了一种方法,主要是通过随机尝试...
xmlData.item.type.(child(0)=='BBB').parent();
或
xmlData.item.type.(children()=='BBB').parent();