循环遍历XMLList - 奇怪的行为

时间:2011-02-24 17:05:40

标签: flex actionscript xmllist

我正在尝试遍历XMLList,而不是将列表中的每个项目都作为XML给出,它只是将位置作为字符串返回,例如

var myList:XMLList = ... (contains <Animal><Type>Dog</Type></Animal><Animal><Type>Cat</Type></Animal>)

for(var item in myList) {
    Alert.show(item);               
}

它只是警告“0”或“1”。如果我检查'item'变量,我会看到同样的事情。但是,如果我检查'myList',它看起来像XML。

我也尝试了myList.children()并强烈地将'items'键入'XML',但我没有做任何事情。

如果有人能告诉我正确的方法,我会非常感激。

由于

3 个答案:

答案 0 :(得分:1)

尝试使用for each代替for

答案 1 :(得分:1)

因为它正在返回索引,所以你可以直接在列表中引用它们:

   for(var item in myList) {   
     var xml:XML = myList[item] as XML;
     trace(xml);        
   }

这将打印出以下内容:

<Animal>
  <Type>Dog</Type>
</Animal>
<Animal>
  <Type>Cat</Type>
</Animal>

或者,您可以直接引用每个孩子的元素:

    for (var child : Object in myList.children()) {
      var xml : XML = myList[child];
      trace(xml.Type);
    }

结果是:

Dog
Cat

答案 2 :(得分:0)

尝试以下代码,只获得狗和猫。

for each (var item:Object in myList)
            {
                trace(item.children()[0]);
            }