FLEX中查找XML节点

来源:互联网 发布:多益网络笔试题目 编辑:程序博客网 时间:2024/06/10 23:25

XML内容进行操作时,查找XML节点是很重要的一个操作。在ActionScript 3.0中,提供了两种查找XML节点的方式:通过属性进行查找和通过节点内容进行能够查找。

使用属性进行查找时,可以直接指定查找的内容的表达式。如果节点符合表达式的判断,那么在返回值内加入节点。具体使用方法如下代码所示。

var flexXMLStr:String="<RIA>"

                    +"<FlashPlayer>"

                    +"<Flash version='9'>Flash CS3</Flash>"

                    +"<Flash version='8'>Flash 8</Flash>"

                    +"<Flash version='7'>Flash 2004MX</Flash>"         +"<Flex>Flex3</Flex>"

                    +"</FlashPlayer>"

                    +"<Ajax>"

                    +"<GoogleAjax>GoogleAjax1.0</GoogleAjax>"

                    +"</Ajax>"

                    +"</RIA>";

var flexXML:XML=new XML(flexXMLStr);

trace(flexXML.FlashPlayer.Flash.(attribute('version')>7));

在上面代码中,flexXML1.FlashPlayer.Flash.(attribute('version')>7)通过指定查找version属性大于7的节点,并输出。上面代码输出结果如下所示。

<Flash version="9">Flash CS3</Flash>

<Flash version="8">Flash 8</Flash>

在进行查找时可以使用“==”、“>”、“<”、“>=”和“<=”等操作符进行对属性的判断。XML中,还提供一个hasOwnProperty判断节点中是否存在查找使用属性。查找表达式支持多条件布尔运算。使用方式如下代码所示。

var flexXMLStr:String="<RIA>"

                    +"<FlashPlayer>"

                    +"<Flash version='9'>Flash CS3</Flash>"

                    +"<Flash version='8' company=’adobe’>Flash 8</Flash>"

                    +"<Flash version='7' company=’macromeida’>Flash 2004MX</Flash>" +"<Flex>Flex3</Flex>"

                    +"</FlashPlayer>"

                    +"<Ajax>"

                    +"<GoogleAjax>GoogleAjax1.0</GoogleAjax>"

                    +"</Ajax>"

                    +"</RIA>";

var flexXML:XML=new XML(flexXMLStr);

trace(flexXML.FlashPlayer.Flash.( hasOwnProperty(“company”)&&@version>7));

//输出结果为<Flash version="8">Flash 8</Flash>

通过节点内容查找节点的方式与通过属性查找节点的方式完全一致。同样也是使用表达式的方式对节点内容进行判断查找。具体使用方式如下代码所示。

var flexXML:XML=

<RIA>

         <FlashPlayer>

                   <Flash>

                   <Name>Flash CS3</Name><Version>9</Version>

                   </Flash>

                   <Flash>

                   <Name>Flash 8</Name><Version>8</Version>

                   </Flash>

                   <Flash>

                   <Name>Flash 2004MX</Name><Version>7</Version>

                   </Flash>

                   <Flex>Flex3</Flex>

         </FlashPlayer>

</RIA>

trace(flexXML.FlashPlayer.Flash(Version>7));                                        //通过节点的值进行节点的查找

上面代码输出的结果如下所示。

<Flash>

<Name>Flash CS3</Name>

<Version>9</Version>

</Flash>

<Flash>

<Name>Flash 8</Name>

<Version>8</Version>

</Flash>

原创粉丝点击