PDA

Просмотр полной версии : Ошибка при конвертации XML в ArrayCollection


Serg L
18.09.2009, 23:33
Ситуация следующая:
Флекс-прилоджение получает XML файл через HTTPService и результат конвертируется в
ArrayCollection.
Если в XML у корневого элемента несколько (2 и больше) дочерних, то все ОК они стают элементами ArrayCollection. Но если один, то выскакивет ошибка:
Type Coercion failed: cannot convert mx.utils::ObjectProxy@11adac11 to mx.collections.ArrayCollection.
Гуглить пробовал, не нашел. Может кто подскажет...

chabapok
19.09.2009, 00:12
Я подскажу.
Сегодня утром с таким же столкнулся и несколько часов разбирался в чем дело.
Например если есть:
<peoples>
<person>
<name>Вася</name>
<age>20</age>
</person>
</peoples>

Если у вас в XML у корневого элемента только один дочерний, то когда вы пробуете присвоить так
for each(i:myobj in myxmlhttp.lastResult.peoples){алалала}

то у вас i получается не обьектом, который содержит свойства (name, age), а i у вас получается равным последнему элементу то бишь i=20 и цикл for each проскакивается.
При это дебаггер отображает свойства myxmlhttp.lastResult и вниз по цепочке правильно, но когда идет присвоение - каюк.

Решение - используйте формат resultFormat="e4x", что соответствует классу XML
в данном случае вы пишите как-то так:

i=myxmlhhtp.lastResult;
age = i.person[0].age;//корневое свойство peoples почему-то указывать не надо