Тема: Простой Xml
Показать сообщение отдельно
Старый 20.04.2004, 11:54
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 8  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
ошибка:
var a = b = new Array(); приводит к созданию ОДНОГО массива с двумя ссылками на него. и соответственно заполняешь ты тоже один массив.

лучше так:
Код:
eXML = new XML();
eXML.ignoreWhite = true;
eXML.load('xml.xml');
var a = [], b = [];
eXML.onLoad = function() {
	var ptr = this.firstChild.firstChild;
	while (ptr) {
		a.push(ptr.attributes.n);
		b.push(ptr.attributes.u);
		ptr = ptr.nextSibling;
	}
	trace(a.join("\n")+"\n __ \n"+b.join("\n"));
};
и не надо никакого счетчика.

или можно сделать так, со счетчиком:
Код:
eXML.onLoad = function() {
	var ptr = this.firstChild;
	for (var i = 0; i<ptr.childNodes.length; i++) {
		var item = ptr.childNodes[i];
		a[i] = item.attributes.n;
		b[i] = item.attributes.u;
	}
	trace(a.join("\n")+"\n __ \n"+b.join("\n"));
};