精通Flex 3.0――4.6.6 遍歷XML節點

  由於XML是一個樹型結構的文檔,所以可以通過指定層次進行循環訪問。在遍歷的過程中可以採用簡單的for循環方式,也可以使用for..in的循環方式。

1for循環方式

在使用簡單的for循環方式的時候需要訪問XML對象的length屬性。具體使用方法如下代碼所示。

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>

         </FlashPlayer>

</RIA>

var i:int

for(i=0;i<flexXML.child("FlashPlayer").child("Flash").length();i++)

         {                                             trace(flexXML.child("FlashPlayer").child("Flash")[i].Name+":"+flexXML.child("FlashPlayer").child("Flash")[i].Version);

         }

在上面的代碼中flexXML.child("FlashPlayer").child("Flash").length()訪問到的是flexXML對象Flashplayer對象中所有Flash節點的個數。上面代碼輸出結果如下所示。

Flash CS3:9

Flash 8:8

Flash 2004MX:7

2for..in循環方式

通過這種訪問方式可以遍歷到XML中,所有想要遍歷的數據。這樣在進行Flex應用開發的時候。可以使用服務段傳輸過來的XML字符串或者XML對象作爲數據的載體。對於上面代碼中的XML對象可以使用for..in的循環方式進行遍歷XML對象。方式如下所示。

for(var name:String in flexXML.child("FlashPlayer").child("Flash"))

{                                             trace(flexXML.child("FlashPlayer").child("Flash")[name].Name+":"+flexXML.child("FlashPlayer").child("Flash")[name].Version);

}

輸出結果與使用簡單的for循環輸出的內容完全一致。

發佈了65 篇原創文章 · 獲贊 0 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章