PDA

Просмотр полной версии : Обработка загруженого XML


eXplozive
30.10.2006, 13:32
Работаю с Флексом... С помощью mx:HTTPService обращяюсь к хмл файлу на сервере... Идея такая: файл возвращает мне список юрлов типа



<?xml version="1.0" encoding="windows-1251"?>
<gallery>

<gal_item>
<id>19</id>
<filename>big_1162196761.jpg</filename>
<thumbname>thumb_1162196762.jpg</thumbname>
</gal_item>

<gal_item>
<id>19</id>
<filename>big_1162196761.jpg</filename>
<thumbname>thumb_1162196762.jpg</thumbname>
</gal_item>

</gallery>




Как мне эти данные запихнуть в массив а потом просто нажатием кнопки перемещаться по его элементам.

etc
30.10.2006, 13:36
А чем тебя XMLList не устраивает?

eXplozive
30.10.2006, 14:08
Дело в том что я обращаюсь к файлу на сервере ... насколько я знаю у XMLList нету атрибута url... т.е. я немогу в него динамичесски подгружать данные.

etc
30.10.2006, 14:15
Я тебя не понимаю.
У тебя есть XMLList, ты можешь получить любой нод XML.

eXplozive
30.10.2006, 15:24
Вобщем пытаюсь сделать так:


private var books:XML;

public function XMLListExample():void {
books = <gallery>
<gal_item>
<id>19</id>
<filename>big_01.jpg</filename>
<thumbname>thumb_1162196762.jpg</thumbname>
</gal_item>
<gal_item>
<id>19</id>
<filename>big_02.jpg</filename>
<thumbname>thumb_1162196762.jpg</thumbname>
</gal_item>
<gal_item>
<id>19</id>
<filename>big_03.jpg</filename>
<thumbname>thumb_1162196762.jpg</thumbname>
</gal_item>
</gallery>;
output.text = books.gal_item[0].filename;
}



Все нормально работает....

если делаю так:


private var books:XML = get_gallery.lastResult();

public function XMLListExample():void {
output.text = books.gal_item[0].filename;
}

<mx:HTTPService id="get_gallery" url="http://www.fla.aa/xml/gallery.xml" useProxy="false" />




выдает мне ошибку...

Подскажите в чем дело...

etc
30.10.2006, 15:29
А отловить для начала загрузку не пробовал? lastResult на момент вызова ещё пуст.

eXplozive
30.10.2006, 16:06
Понял свою ошибку. Поправил.


private var books:XML;

public function XMLListExample():void {
books = get_gallery.lastResult();

output.text = books.gal_item[0].filename;
}

<mx:HTTPService result="XMLListExample()" id="get_gallery" url="http://www.fla.aa/xml/gallery.xml" useProxy="false" />



При загрузке выдает ошибку - TypeError: Error #1006: value is not a function.

etc
30.10.2006, 16:21
lastResult — это свойство, а не метод.
Кроме того, нужно указать, что resultFormat="e4x"

eXplozive
30.10.2006, 17:14
когда делаю так:


books = get_gallery.lastResult;


При компиляции выдает ошибку:

1118: Implicit coercion of a value with static type Object to a possibly unrelated type XML.

etc
30.10.2006, 17:20
Прочитай вторую строку восьмого поста.

eXplozive
30.10.2006, 18:30
я указывал

etc
30.10.2006, 18:34
Покажи полный код.
А, дa:
books = get_gallery.lastResult as XML;
Кастить надо не забывать.