Всем привет. Помнится, давно-давно делал как-то обход каталогов винды на делфе, пользовался велосипедами, в принципе, но понимал, что делаю. Так вот, потребовалось сделать аналогичное на ас3. Наваял тестовую xml, сделал у каждого элемента атрибут name, считываю его, пробегаясь рекурсией.

Код AS3:
private var arrTree:Array = [];
...
private function parseXML(e:Event):void {
xml = new XML(xmlLoader.data);
changeTree(xml, arrTree);
}
private function changeTree(xml:XML, arr:Array):void {
for each (var child:XML in xml.*) {
var name:String = child.@name;
var arrNew:Array = [];
arrNew.push(name);
arr.push(arrNew);
//trace(arrNew);
changeTree(child, arrNew);
}
}
Считывается и работает аналогично вот такому:

Код AS3:
for each (var child:XML in xml..*)
То есть, вроде бы все правильно. Загоняю даже в массив, он становится многомерным и заполняется. Вроде бы тоже правильно работает. Но никак не могу вывести трейсами визуализацию дерева (хотя бы просто пробелами отделить). Плюс у меня стойкое очучение, что это все сделано неверно или, по крайней мере, нелогично и нерационально.
Помогите, пожалуйста, справиться с задачей.