ошибка:
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"));
};