Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Ошибка при конвертации XML в ArrayCollection (http://www.flasher.ru/forum/showthread.php?t=130153)

Serg L 18.09.2009 23:33

Ошибка при конвертации XML в ArrayCollection
 
Ситуация следующая:
Флекс-прилоджение получает 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 почему-то указывать не надо


Часовой пояс GMT +4, время: 23:15.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.