Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Проблемы при чтении XML в массив (http://www.flasher.ru/forum/showthread.php?t=184396)

Kr1shna 18.09.2012 11:50

Проблемы при чтении XML в массив
 
Есть XML файл:
Код:

<?xml version="1.0" codepage="utf-8"?>
<GALLERY>
<EVENT name="pic0" text="ptext0">aaaaa</EVENT>
<EVENT name="pic1" text="ptext1">bbbbb</EVENT>
<EVENT name="pic2" text="ptext2">ccccc</EVENT>
<EVENT name="pic3" text="ptext3">ddddd</EVENT>
<EVENT name="pic4" text="ptext4">eeeee</EVENT>
<EVENT name="pic5" text="ptext5">fffff</EVENT>
<EVENT name="pic6" text="ptext6">ggggg</EVENT>
<EVENT name="pic7" text="ptext7">hhhhh</EVENT>
<EVENT name="pic8" text="ptext8">iiiii</EVENT>
<EVENT name="pic9" text="ptext9">jjjjj</EVENT>
</GALLERY>

При попытке прочитать его в массив на выходе вместо длины массива (10) выдает "undefined", после чего спокойно дает второй trace. То есть, XML загружается в myXML, но дальше при попытке прочитать его в массив events начинается что-то непонятное. Где косяк и как сделать правильно?

Код:
Код AS1/AS2:

var myXML:XML = new XML();
var events:Array;
 
system.useCodepage = true;
myXML.ignoreWhite = true;
myXML.load("text.xml");
myXML.onLoad = function (success) {
        if (success) {
                for (var i:Number = 0; i < myXML.firstChild.childNodes.length; i++) {
                events.push({
                        i:i+1,
                        myphoto:myXML.firstChild.childNodes[i].attribute.name,
                        mytext:myXML.firstChild.childNodes[i].attribute.text,
                        desc:myXML.firstChild.childNodes[i]
                        });
                }
                trace(events.length);
                trace('XML loaded successful');
        } else {
                trace ('ERROR LOADING XML');
        }
}

Скажу сразу, что перед написанием сабжа облазил все, до чего дотянулся. Но решения так и не нашел.

Hauts 18.09.2012 16:34

Код AS1/AS2:

system.useCodepage = true;

Не используйте такой директивы.

Код AS1/AS2:

var events:Array = []

Массив бы создать для начала.

dark256 18.09.2012 20:18

Код AS1/AS2:

desc:myXML.firstChild.childNodes[i].childNodes[0].nodeValue



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

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