flex4.0精确读取xml标签与属性

                                     flex4.0 根 据指定属性或节点快速查找 xml 节点

 

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

 

使用属性进行查找时,可以直接指定查找的内容的表达式。 XML 中,还提供一个 hasOwnProperty 判断节点中是否存在查找使用属性。查找表达式支持多条件布尔运算。

 

 

var file:String = "<root><nodes>" +

                            "<node type='1' class='com.ct.core.TextInput' name ='userName1'><child name='y'><haha>wwww</haha></child></node>" +

                            "<node type='2' class='com.ct.core.TextInput' name ='userName2'>userName2</node>" +

                            "<node type='3' class='com.ct.core.TextInput' name ='userName2'>userName2</node>" +

                            "<node type='4' class='com.ct.core.TextInput' name ='userName3'>userName2</node>" +

                            "<node type='5' class='com.ct.core.TextInput' name ='userName4'><child name='y'><haha>wwww</haha></child></node>" +

                            "<node type='6' class='com.ct.core.TextInput' name ='userName4'><child name='y'><haha>wwww</haha></child></node>" +

                            "</nodes></root>";

 

         var xml:XML = new XML(file);

 

区别 1:     type:XMLList

         1>.Alert.show(xml.nodes.node.(@name=="userName1"));

 

返回:

<node type="1" class="com.ct.core.TextInput" name="userName1">

  <child name="y">

    <haha>wwww</haha>

  </child>

</node>

 

 

         2>.Alert.show(xml.nodes.node.(@name=="userName2"));

 

返回: type:XMLList

<node type="2" class="com.ct.core.TextInput" name="userName2">userName2</node>

<node type="3" class="com.ct.core.TextInput" name="userName2">userName2</node>

 

        

         3>.Alert.show(xml.nodes.node.(@name=="userName3"));

 

返回: type:XMLList

userName3

 

 

         4>.Alert.show(xml.nodes.node.(@name=="userName1").child.haha);

 

返回: type:XMLList

wwww

 

 

         5>.Alert.show(xml.nodes.node.(@name=="userName4").child.haha);

 

返回: type:XMLList

<haha>wwww</haha>

<haha>wwww</haha>

 

 

 

         区别 1 总结:当快速提取根据指定属性的节点时,

                   如果相同名称的节 点的同一属性名的值一样的节点个数为 1 个,则输出最后节点的 value

                   不管这个属性是最 后节点的的属性 (3>,4>) ,或者不是;

                   如果相同名称的节 点的同一属性名的值一样的个数 2 个或两个以上的则输出,最后根节点的的标签和 value,

                   不管这个属性是最 后节点的的属性 (2>,5>) ,或者不是;

                   而如果把“ == ”换成其它逻辑符号“ >,<,>=,<=,!= ”也是根据个数跟上面一样;

                   如果你要取得最后 节点下还有子节点,则输出最后根节点的标签和 value(5>);

 

         6>.var child:String = "node";

            var property:String = "name";

            var value:String = "userName2";

         Alert.show(xml.nodes.child(child).(attribute("name")==value));

返回: type:XMLList

<node type="2" class="com.ct.core.TextInput" name="userName2">userName2</node>

<node type="3" class="com.ct.core.TextInput" name="userName2">userName2</node>

         如果你对应的子节 点或属性不能确定,你能够用函数 child(String), attribute(String) 在前面的基础上动态取得你所需要的节点或 value;

 

         7>.Alert.show(xml.nodes.node.elements("child"));

         8>.Alert.show(xml.nodes..child);

都返回: type:XMLList

<child name="y">

  <haha>wwww</haha>

</child>

<child name="y">

  <haha>wwww</haha>

</child>

<child name="y">

  <haha>wwww</haha>

</child>

 

         9>.

         var file:String = "<root>" +

                                               "<nodes>" +

                                               "<node type='1' class='com.ct.core.TextInput'><name>username2</name></node>" +

                                               "<node type='2' class='com.ct.core.TextInput'><name>username</name></node>" +

                                               "<node type='3' class='com.ct.core.TextInput'><name>username</name></node>" +

                                               "</nodes></root>";

                                    

         var xml:XML = new XML(file);

         Alert.show(xml.nodes.node.(name=="username"));     

 

返回: type:XMLList

<node type="2" class="com.ct.core.TextInput">

  <name>username</name>

</node>

<node type='3' class='com.ct.core.TextInput' value='demo'><name>username</name></node>

 

 

         10>.Alert.show(xml.nodes.node["name"]);

返回: type:XMLList

<name>username2</name>

<name>username</name>

<name>username</name>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值