flex4:fx | XML - 如何进行复杂搜索

时间:2011-02-24 19:22:45

标签: xml flex flex4

我想在fx | XML对象中搜索label='notifications'的节点 在其中有一个label='notifications2'的节点,我希望得到一个包含其中的内容的XML。

这是我的Flex 4代码:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
           xmlns:s="library://ns.adobe.com/flex/spark" 
           xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="_ccInit()">

<!-- Launch your application by right clicking within this class and select Debug As > FDT SWF Application -->

<fx:Declarations>
    <fx:XML id="moshe">
        <node state="root_item" label="notifications">
        <node state="root_item" label="notifications2">
                <node state="item" label="item" a="test1" b="test2" />
        </node>
            <node state="root_item" label="Winnings" />
            <node state="root_item" label="Winnings2" />
            <node state="root_item" label="Winnings3" />
            <node state="root_item" label="Winnings4" />
            <node state="root_item" label="Winnings5" />
        </node>
    </fx:XML>
</fx:Declarations>

<fx:Script>
    <![CDATA[
        import mx.controls.Alert;
        private function _ccInit():void {
            var newXml:XML = moshe.(@label == "notifications").(@label == "notifications2") as XML;
            Alert.show(newXml.toString());          
        }
    ]]>
</fx:Script>
</s:Application>

newXml为null。我该如何解决这个问题?

感谢

1 个答案:

答案 0 :(得分:1)

您的搜索永远不会有效。您没有为moshe XML定义rootTag,并且您不能使用相同名称的根标记,“节点”和“元素”,即节点。您必须具有格式正确的XML。

在StackOverflow上搜索 Flex XML搜索将提供大量示例