Цикл через XMLList - странное поведение - PullRequest
0 голосов
/ 24 февраля 2011

Я пытаюсь пройтись по списку 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 ]

1 голос
/ 24 февраля 2011

Поскольку он возвращает индексы, вы можете просто ссылаться на них в списке напрямую:

   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
1 голос
/ 24 февраля 2011

Попробуйте for each вместо for

0 голосов
/ 24 февраля 2011

Попробуйте код ниже, чтобы получить только собак и кошек.

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