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関数(およびその他のいくつか)は、個々のノードで機能します。ただし、入力例に、取得に使用しているのと同じ属性値を持つ複数のノードがある場合、単一のノードではなく、ノードのリスト(つまり、)を取得し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 に答える