Adobe Flex: невозможно преобразовать XMLList в mx.collections.IList

Мое приложение Flex запускает службу на странице php, которая извлекает данные из моей базы данных, а затем структурирует результат в формате XML. Я создал новый XMLList под названиемtestList за пределами каких-либо функций, затем, когда результаты возвращаются (они сначала сгибаются как одна строка, содержащая весь код XML), у меня есть следующий код, чтобы преобразовать его в XML, а затем добавить в мой testList:

var s:String = event.result as String;
var xml:XML = new XML(s);
testList = xml.user;

Данные используются в одной функции, затем они также передаются в мой компонент, где я пытаюсь отобразить XMLList в списке (с testList в качестве dataProvider), и я получаю следующую ошибку:

Ошибка типа: Ошибка № 1034: сбой приведения типа: невозможно преобразовать XMLList @ 68ffa01 в mx.collections.IList.

Я чувствую, что это, вероятно, ошибка новичка, но любая помощь приветствуется.

Ответы на вопрос(2)

Решение Вопроса

xml.user дает вам XMLList всехuser элементы. Ты можешь использоватьXMLListCollection, который реализуетIList, чтобы обернуть результат, чтобы вы могли использовать его в качестве поставщика данных.

var xml:XML = new XML(event.result as String);
var list:IList = new XMLListCollection(xml.user);

Другой вариант - зациклить XMLList и добавить его в массив или любую другую коллекцию, которая вам нужна. Если вы точно знаете, что существует только один пользователь, вы можете сделать это:

var user:XML = xml.user[0];
 28 мая 2012 г., 03:55
Обратите внимание, что вы используете XMLList в качестве источника для XMLListCollection. Вы никогда не должны помещать свою коллекцию XMLListCollection в тип переменной XMLList.
 15 янв. 2013 г., 05:52
@takteek, у меня похожая проблема, не могли бы вы взглянуть на мой вопрос?stackoverflow.com/questions/14331106/…                           Спасибо
 user107754428 мая 2012 г., 03:00
Я сделал то, что вы сказали, и теперь у меня есть ошибка:TypeError: Error #1034: Type Coercion failed: cannot convert mx.collections::[email protected] to XMLList.
 user107754428 мая 2012 г., 20:36
Благодарю вас, как Takteek и Эми. Я понял, что в моем компоненте я все еще пытался использовать XMLList вместо XMLListCollection. Это работает сейчас.

вероятно, используете это внутри загруженного вами модуля или SWF-файла, и загрузчик имеет домен приложения, отличный от родительского, а другой загруженный модуль или SWF-файл также использует XMLList или XMLListCollection. Без дополнительных подробностей о вашей архитектуре я могу только сказать, что родительский applicationDomain должен загружаться в XMLList и / или XMLListCollection перед любым дочерним объектом, или чтобы они оба совместно использовали родительский applicationDomain.

Ваш ответ на вопрос