1

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

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

谢谢。乌里

4

1 回答 1

1

使用此处描述的 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功能(以及其他一些功能)适用于单个节点。但是,如果您的输入示例有多个节点具有相同的属性值用于检索,您将获得节点列表(即 an 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 ...
}
于 2012-05-21T17:54:40.070 回答