查找XML条目编号

时间:2012-05-21 17:48:22

标签: xml actionscript-3

我需要获取一个条目的节点号,但我只有LOG_ID。怎么找到这个号码?

<LOG>
<ENTRY LOG_ID="01042012"/>
<ENTRY LOG_ID="03052012"/>
<ENTRY LOG_ID="09052012"/>
</LOG>

感谢。乌利

1 个答案:

答案 0 :(得分:1)

按照heregetting started documentation

所述使用E4X处理
var myXML:XML = 
 <LOG>
  <ENTRY LOG_ID="01042012"/>
  <ENTRY LOG_ID="03052012"/>
  <ENTRY LOG_ID="09052012"/>
 </LOG>

trace( myXML.ENTRY.(@LOG_ID==09052012).childIndex() ); /* retrieve entire node */

您还可以在XML对象中存储对此节点的引用:

 var index:int = myXML.ENTRY.(@LOG_ID==09052012).childIndex();

注意:childindex函数(以及其他一些函数)适用于各个节点。但是,如果您的输入示例具有多个节点,这些节点具有您用于检索的相同属性值,则将获得节点列表(即XMLList)而不是单个节点。现在,为了找出这些孩子的指数,你需要做以下事情:

for each ( var selectedNode in myXML.ENTRY.(@LOG_ID==09052012) )
    trace( selectedNode.childIndex() );

您可以随时通过以下方式检查您的E4X查询是否返回了一个列表:

var candidates:XMLList = myXML.ENTRY.(@LOG_ID==09052012) as XMLList;
if (candidates != null) { // a list 
        // do something ...
}