由於XML是一個樹型結構的文檔,所以可以通過指定層次進行循環訪問。在遍歷的過程中可以採用簡單的for循環方式,也可以使用for..in的循環方式。
1.for循環方式
在使用簡單的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
2.for..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循環輸出的內容完全一致。