Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Парсинг XML в массив объектов (http://www.flasher.ru/forum/showthread.php?t=115546)

JesterAntik 02.09.2008 20:42

Парсинг XML в массив объектов
 
Задача распарсить xml типа
<objects>
<object>свойства объекта</object>
<object>свойства объекта</object>
.......
</objects>
В массиа объектов определенного класса.

Оснавная сложность состоит в том что бы пробежаться в цикле по всем <object>.


PS. Поиск по форуму юзал. Варианты использовать XML не переводя в объекты отпадает. Создать свой класс на основе XML тоже не получается(как бы не хотелось, но flex говорит что это финальный класс и детей не даст сделать=) )

Pogrebeshka 03.09.2008 05:39

Так а в чем собственно проблема, парсите данный файл, и получает либо XML либо XMLList(с чем Вам удобнее работать) и дальше просто динамически создаете нужные вам классы, передавая значения из XML в конструктор вашего класса.
XMLList дает возможность прохода по массиву object

JesterAntik 03.09.2008 09:51

а не могли бы привести пример конкретного обращения к iтой строке <object>.

Pogrebeshka 03.09.2008 21:21

Может быть вариант такой: myXMLCol.elements()[i] myXMLCol - это объект типа XMLList. Так же посмотрите методы этого класса child и attribute, добавляют гибкости в работе с XML.
Так же можете посмотреть как работать с классом SimpleXMLDecoder, в него передается XMLDocument, а этот класс возращает тип Object, а далее зная структуру XML файла, можно обращаться к его свойствам, которые будут в такой же иерархии как и в файле.

Bruiser 04.09.2008 23:42

Код:

var myXML:XML = <objects>
<object>obj1</object>
<object>obj2</object>
</objects>;
var arr:ArrayCollection = new ArrayCollection();
for each(var xml:XML in myXML.children()){
  arr.addItem(xml);
}


Kuruki 08.09.2008 14:11

Как я понимаю SimpleXMLDecoder, ArrayCollection, XML.childrens() только во Flex доступны? Не могу найти их в справке по Flash.

wvxvw 08.09.2008 15:11

XML.childrens() -> XML.children()
Остальные два из mx пакета, но их, как и любой другой пакет можно использовать во Флеше, вопрос только в нужности этих классов...


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

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