在as3中的多级xml中查找匹配节点

在as3中的多级xml中查找匹配节点,xml,actionscript-3,Xml,Actionscript 3,我有一个多级节点结构,看起来像这样 <node> <node> <node id="a1"></node> <node id="a2"></node> </node> <node> <node id="b1"></node> <node id="b2"></node>

我有一个多级节点结构,看起来像这样

<node>
    <node>
        <node id="a1"></node>
        <node id="a2"></node>
    </node>

    <node>
        <node id="b1"></node>
        <node id="b2"></node>
    </node>
<node>

但它似乎不适用于多个嵌套级别。有没有一种方法可以在不循环和归档内容的情况下找到节点?

虽然我不完全了解您的情况,但您是否尝试过使用?

使用
子体()
或E4X操作符

var测试:XML=
;
var搜索:xmlslist;
搜索=测试。子体(“节点”)(属性(“id”)=“b4”);
跟踪(search.toXMLString());
//或
搜索=测试..节点。(@id==“b4”);
跟踪(search.toXMLString());
注意:小心使用
@id
符号。如果任何节点不包含“id”属性,它将为您提供一个引用错误异常

xmldata.*.(@id == "a2")[0]
var test:XML = 
<node>
    <node id="b1"></node>
    <node id="b2"></node>
    <smth>
        <node id="b3">
            <smth>
                <node id="b4"></node>
            </smth>
        </node>
    </smth>
</node>;

var search:XMLList;

search = test.descendants("node").(attribute("id") == "b4");
trace(search.toXMLString());
// OR
search = test..node.(@id == "b4");
trace(search.toXMLString());