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>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章