Добрый день.
Написал скрипт для чтения XMLек с поиском необходимых данных при неизвестной заранее структуре. Но при обработке больших файлов возникла известная проблема "256 levels of recursion". На самом деле никакой бесконечности нет, все отслеживается. Как можно справиться с этой проблемой в данном случае?

Код:
nxnod=new XMLNode; //элемент обработки
var nod_lvl=0; //уровень обработки
return_nod_end=false; //проверка окончания
//функция поиска дочерних узлов
function get_child(nxnod) {
if((nxnod.hasChildNodes())and(return_nod_end!=true)) {
nod_lvl+=1;
return_nod(nxnod.firstChild);
}else return;
};
//функция поиска корневых узлов
function get_root(nxnod) {
if((nxnod.nextSibling!=null)and(return_nod_end!=true)) {
return_nod(nxnod.nextSibling);
}else return;
};
//функция проверки уровня обработки
function get_level(nxnod) {
if(return_nod_end!=true) {
if(nod_lvl!=0) {
if(nxnod.parentNode.nextSibling!=null) {
nod_lvl-=1;
return_nod(nxnod.parentNode.nextSibling);
}else {
nod_lvl-=1;
get_level(nxnod.parentNode);
}
}else {
return_nod_end=true;
return;
}
}
};
//общая функция чтения
function return_nod(nxnod) {
//ищем и находим...
if(nxnod.nodeName=="testbox") {
tbox=nxnod.firstChild.nodeValue;
trace("tbox="+tbox);
}
get_child(nxnod);
get_root(nxnod);
get_level(nxnod);
return;
};