Форум 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=98209)

Дмитрий. 09.07.2007 10:40

количество объектов в XML
 
Если использовать такой код
Код:

oxml = new XML();
oxml.ignoreWhite = true;
oxml.load("objects.xml");
oxml.onLoad = trace(oxml.childNodes[0].childNodes.length);

То все работает и показывает количество узлов. А если вызывать загрузку XML из функции, то не работает.

Код:

function XML2 () {
oxml = new XML();
oxml.ignoreWhite = true;
oxml.load("objects.xml");
oxml.onLoad = trace(oxml.childNodes[0].childNodes.length);
        }

В чем ошибка?

etc 09.07.2007 10:44

Первый код не может работать. И второй тоже.

Код:

oxml.onLoad = function() {
    trace(this.firstChild.childNodes.length);
}


Torero 09.07.2007 11:08

Если структура XML сложная, то в цикле, 1 за другим, обнули все объекты и посчитай сколько их было.

Дмитрий. 09.07.2007 12:03

Первый код прекрасно работает.

this.create 09.07.2007 12:04

Дмитрий
Свой XML покажите. Разумеется в упрощенном виде.

Дмитрий. 09.07.2007 12:12

Код:

<NORTH_AMERICA>
 <State>
  <object></object>
  <object></object>
 </State>
</NORTH_AMERICA>
<South_AMERICA>
 <State>
  <object></object>
  <object></object>
 </State>
</South_AMERICA>


this.create 09.07.2007 12:52

Я вставил ваш XML в XML редактор, а он пишет что XML не правильный.
А вот так все нормально.
Код:

<?xml version="1.0" encoding="UTF-8"?>
<main>
<NORTH_AMERICA>
 <State>
  <object></object>
  <object></object>
 </State>
</NORTH_AMERICA>
<South_AMERICA>
 <State>
  <object></object>
  <object></object>
 </State>
</South_AMERICA>
</main>

Совет: для работы с XML используйте специальные XML редакторы.

Далее:
Код:

oxml = new XML();
oxml.ignoreWhite = true;
oxml.load("objects.xml");
oxml.onLoad = trace(oxml.firstChild.childNodes[0].childNodes.length);

не работает ( как вам и указали).

Код:

function xmlLoader(fileName:String):Void {
        oxml = new XML();
        oxml.ignoreWhite = true;
        oxml.load(fileName+'.xml');
        oxml.onLoad = function(success:Boolean):Void  {
                if (success && !this.status) {
                        trace(this.firstChild.childNodes[0].childNodes.length);
                }
        };
}
//
xmlLoader('objects');

Вот вариант с функцией. Все прекрасно работает.

etc 09.07.2007 13:48

Цитата:

Сообщение от Дмитрий.
Первый код прекрасно работает.

Вот именно в таком виде он не может работать.


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

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