Вот переписываю из учебника функцию рекурсии obhod(), подсчитывающую количество узлов в документе.
Она получает ссылку на узел и увеличивает значение переменной-счетчика на единицу. Затем она проверяет, есть ли у узла дочерние узлы. Если они есть, то создается еще одна активация функции и ей передается ссылка на первый дочерний узел. Далее функция проверяет, имеется ли узел, который был бы прописан после данного. Если он обнаруживается, то ссылка на него передается новой активации obhod().

Код:
var myXML:XML=new XML("<text><t1/><data>привет</data><t3/></text>");
var col:Number=0;
function obhod(node:XMLNode):Void {
col++;
if (node.hasChildNodes()) {
obhod(node.firstChild);
}
if (node.nextSibling != null) {
obhod(node.nextSibling);
}
}
obhod(myXML.firstChild);
trace(col); //Выводит 5
Теперь немного изменим код:

Код:
var myXML = new XML();
myXML.load("myxml.xml");
var col:Number=0;
myXML.onLoad = function() {
function obhod(node:XMLNode):Void {
col++;
if (node.hasChildNodes()) {
obhod(node.firstChild);
}
if (node.nextSibling != null) {
obhod(node.nextSibling);
}
}
obhod(myXML.firstChild);
trace(col); //Выводит 0 ЧТО НЕ ПРАВИЛЬНО
}
Содержимое файла myxml.xml такое:

Код:
<LES>
<dub>
<vetochka1>
<listik1/>
<listik2/>
<listik3/>
</vetochka1>
<vetochka2/>
<duplo vduple="meda polno"/>
</dub>
<sosna>
<krona>
<igolka1/>
<igolka2/>
<igolka100/>
</krona>
</sosna>
<lipa>
<vetochka1 pochka="4"/>
<vetochka2 pochka="10"/>
<vetochka3 pochka="0"/>
</lipa>
<kamen oblom="у него есть остаток какого-то хрена"/>
</LES>
Помогите найти Ошибку!!!