0

私の XML リストの例:

<listnode>
   <nodeA id="1">
       <nodeB id="1" />
   </nodeA>
   <nodeA id="2">
       <nodeB id="2" />
   </nodeA>
</listnode>

<listnode>
   <nodeA id="2">
       <nodeB id="2" />
   </nodeA>
   <nodeA id="1">
       <nodeB id="3" />
   </nodeA>
   <nodeA id="5">
       <nodeB id="1" />
   </nodeA>
</listnode>

<listnode>
    ... etc

複数の条件に基づいて XML リストを取得しようとしています。1 つの条件があれば、次のようなものを使用して問題ありません。

var  list:XMLList = list.(descendants("nodeA").@id.contains("1"));

これにより、属性id=1を持つnodeAという名前の子孫を持つlist 内のすべてのlistnodeリストが得られます。

同じリストを取得するにはどうすればよいですか? nodeBノードのIDも探しますか? 何かのようなもの:

var  list:XMLList = list.(descendants("nodeA").@id.contains("1") && nodeA.descendants("nodeB").@id.contains("3"));

この例では、1 つのノードを含むリストが表示されます。

<listnode>
   <nodeA id="2">
       <nodeB id="2" />
   </nodeA>
   <nodeA id="1">
       <nodeB id="3" />
   </nodeA>
   <nodeA id="5">
       <nodeB id="1" />
   </nodeA>
</listnode>

id=1 の nodeA があり、id=3 の nodeB があるためです。

何か案は?

4

2 に答える 2

1

更新しました

list.(descendants("nodeA").(@id.contains("1") && descendants("nodeB").@id.contains("3")).length() > 0)

これはどうですか?

于 2011-04-21T20:11:34.283 に答える
0

はい、条件を組み合わせることができます。

var list:XML = <list>
<listnode>
   <nodeA id="1">
       <nodeB id="1" />
   </nodeA>
   <nodeA id="2">
       <nodeB id="2" />
   </nodeA>
</listnode>

<listnode>
   <nodeA id="2">
       <nodeB id="2" />
   </nodeA>
   <nodeA id="1">
       <nodeB id="3" />
   </nodeA>
   <nodeA id="5">
       <nodeB id="1" />
   </nodeA>
</listnode>
</list>;
var result:XMLList = list.listnode.descendants("*").(@id=="1" && children().length() > 0); 
于 2011-04-21T20:03:56.093 に答える