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

akb2005 15.08.2005 11:38

как сделать рекурсивный обход Xml файла?
 
Доброе время суток.

Как сделать рекурсивный обход XML файла?
т.е. параметрически передавать в функцию ветку XML, чтоб не писать 100 раз AAA.childNodes[i].childNodes[ii].childNodes[iii].childNodes[iiii].childNodes[iiiii].childNodes[iiiiii]...?

unlexx 15.08.2005 11:48

циклом
for i {
for ii {
for iii {
}
AAA.childNodes[i].childNodes[ii].childNodes[iii].childNodes;
}
}

akb2005 15.08.2005 11:53

это понятно, а если неизвестна структура, я напишу 5 вложенных циклов а их 7, как обрабатывать такие дела, с рекурсией непонятно?

unlexx 15.08.2005 11:58

проверяй глубину и через функцию делай обходы

iNils 15.08.2005 12:40

Только имя файла смени
Код:

_root.tree2xml = function (xmlNode) {
        trace (xmlNode);

        if (xmlNode.hasChildNodes () || xmlNode.childNodes.length != 0) {
                var j = 0;
                while (xmlNode.childNodes[j]) {
                        _root.tree2xml (xmlNode.childNodes[j++]);
                }
        }
};
xmlTree = new XML ();
xmlTree.ignoreWhite = true;
xmlTree.load ("_city.xml");
xmlTree.onLoad = function () {
        _root.tree2xml (xmlTree);
};


akb2005 16.08.2005 10:58

спасибо, я уже сделал, хотел именно так, но не получалось передать ветку Xml через параметр функции.
а так действительно работает, а то мне пришлось куски Xml засовывать во временный массив?


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

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