Flexのツリーコンポーネントで特定のノードを検索する必要があり調べたのでメモ。
..とdescendants()は同じ意味で全ての子、孫などのノードを対象に検索してくれます。
var myXML:XML =
<root>
<child name="child1" />
<child name="child2">
<child name="child2-1" />
<child name="child2-2" />
<child name="child2-3" />
</child>
<child name="child3" />
<child name="child4" />
<child name="child5">
<child name="child5-1" />
<child name="child5-2" />
<child name="child5-3" />
<test name="name"/>
</child>
</root>
上記のXMLがあったとします。
<root>
<child name="child1" />
<child name="child2">
<child name="child2-1" />
<child name="child2-2" />
<child name="child2-3" />
</child>
<child name="child3" />
<child name="child4" />
<child name="child5">
<child name="child5-1" />
<child name="child5-2" />
<child name="child5-3" />
<test name="name"/>
</child>
</root>
<child name="child2-2" />
で、上記ノードを取得したいとすると、xmlの構造がわからない場合には
myXML.descendants().(@name=="child2-2")
もしくは
myXML..*.(@name=="child2-2");
で取得可能。..とdescendants()は同じ意味で全ての子、孫などのノードを対象に検索してくれます。