Просмотр полной версии : как сделать рекурсивный обход Xml файла?
Доброе время суток.
Как сделать рекурсивный обход XML файла?
т.е. параметрически передавать в функцию ветку XML, чтоб не писать 100 раз AAA.childNodes[i].childNodes[ii].childNodes[iii].childNodes[iiii].childNodes[iiiii].childNodes[iiiiii]...?
циклом
for i {
for ii {
for iii {
}
AAA.childNodes[i].childNodes[ii].childNodes[iii].childNodes;
}
}
это понятно, а если неизвестна структура, я напишу 5 вложенных циклов а их 7, как обрабатывать такие дела, с рекурсией непонятно?
проверяй глубину и через функцию делай обходы
Только имя файла смени
_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);
};
спасибо, я уже сделал, хотел именно так, но не получалось передать ветку Xml через параметр функции.
а так действительно работает, а то мне пришлось куски Xml засовывать во временный массив?
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.