请使用AS3 flash在XML中查找特定的子节点

时间:2010-06-02 03:29:12

标签: xml actionscript-3

我有这个xml

var testXML:XML =    <family>
    <father name1="tom" age="5" ><father1 name1="test1"/><father2 name1="test2"/></father>
    <mother name1="tomylee" age="55" ><mother1/><mother2/></mother>
    <sister name1="sister1" age="35" ><sister1/><sister2/></sister>
    </family>;

我想获取name1 = test1的子节点,但我只知道family

所以有像

这样的东西
trace (testXML.children(@name1="test1");  

我只知道家庭节点,我不知道该节点在父亲内部的位置

是否可以在根节点上应用任何过滤器来查找内容

1 个答案:

答案 0 :(得分:2)

使用 hasOwnProperty 和一些逻辑运算符

trace( testXML..*.( hasOwnProperty("@name1") && @name1 == "tom" ));
trace( testXML..*.( hasOwnProperty("@name1") && @name1 == "test1" ));

我修改了你的XML以至少显示结果

var testXML:XML =    <family>
            <father name1="tom" age="5" ><father1 name1="test1">father1</father1><father2 name1="test2"/></father>
            <mother name1="tomylee" age="55" ><mother1/><mother2/></mother>
            <sister name1="sister1" age="35" ><sister1/><sister2/></sister>
            </family>;

追踪证明

<father name1="tom" age="5">
<father1 name1="test1">father1</father1>
<father2 name1="test2"/>
</father>

更新: -----此处 - &gt; 。* &lt; - 是获取testXML中所有项目的通配符