Здравствуйте,наверняка неоднократно поднимался подобный вопрос,но поиск не выявил необходимый мне ответ.
не получается сделать рекурсвиный обход такого XML файла

Код AS3:
<?xml version="1.0" encoding="UTF-8"?>
<images head="начальное изображение" >
<curs x="1" y="1">
<image src="2"/>
<curs x="11" y="33">
<image src="22"/>
<curs x="11" y="13">
<image src="22"/>
</curs>
</curs>
<curs x="1" y="1">
<image src="2"/>
<curs x="31" y="22">
<image src="21"/>
</curs>
</curs>
<curs x="123" y="324">
<image src="123"/>
<curs x="3121" y="4121">
<image src="1241"/>
</curs>
</curs>
</curs>
</images>
Помогите пожалуйста.
примерно так предполагаю сделать :

Код AS3:
private function sss(_obj:XMLList,parent:Vertex):void
{
for (var i:Number = 0; i < _obj.length(); i++)
{
var object:Object = _obj[i];
trace(object.@x, object.@y);
//trace(object.image.@src);
parent.getImg().addPointer(new Pointer(new Point(object.@x, object.@y)));
var y:Image = new Image(object.image.@src);
var x:Vertex = new Vertex(y);
parent.addVertexbyVertex(x);
var list:XMLList = _obj.child("curs");
trace(list);
sss(list, x);
}
}
Функция работает почти правильно.
вот trace её работы

Код:
1 1
<curs x="11" y="33">
<image src="22"/>
<curs x="11" y="13">
<image src="22"/>
</curs>
</curs>
<curs x="1" y="1">
<image src="2"/>
<curs x="31" y="22">
<image src="21"/>
</curs>
</curs>
<curs x="123" y="324">
<image src="123"/>
<curs x="3121" y="4121">
<image src="1241"/>
</curs>
</curs>
11 33
<curs x="11" y="13">
<image src="22"/>
</curs>
<curs x="31" y="22">
<image src="21"/>
</curs>
<curs x="3121" y="4121">
<image src="1241"/>
</curs>
11 13
31 22
3121 4121
1 1
<curs x="11" y="13">
<image src="22"/>
</curs>
<curs x="31" y="22">
<image src="21"/>
</curs>
<curs x="3121" y="4121">
<image src="1241"/>
</curs>
11 13
31 22
3121 4121
123 324
<curs x="11" y="13">
<image src="22"/>
</curs>
<curs x="31" y="22">
<image src="21"/>
</curs>
<curs x="3121" y="4121">
<image src="1241"/>
</curs>
11 13
31 22
3121 4121
Проблема в следующем мне нужно,чтобы программа возвращалась на уровень наверх,как только она доходит до конца.Точнее даже на n -ое количество уровней. То бишь функция сначала обходила 1 ветку,потом вторую и так далее. Сейчас парсер каждый раз собирает curs со всех веток одно уровня и получается что некоторые элементы печатаются по несколько раз.