我需要获取一个条目的节点号,但我只有LOG_ID。怎么找到这个号码?
<LOG>
<ENTRY LOG_ID="01042012"/>
<ENTRY LOG_ID="03052012"/>
<ENTRY LOG_ID="09052012"/>
</LOG>
感谢。乌利
答案 0 :(得分:1)
按照here和getting 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 ...
}