Bonjour à tous,
cet aprem, Flash me fait péter un plomb.
Le contexte (je bosse sous FlashMX2004Pro 7.2 (à jour quoi...) )
J'ai un fichier XML balo qui porte le doux nom de "test.xml", donc voici le contenu:
<racine>
<bruce>
<tsoin1/>
<tsoin2/>
</bruce>
<kate>
<tsoin1/>
<tsoin2/>
</kate>
<rodolf>
<tsoin1/>
<tsoin2/>
</rodolf>
</racine>
(Au départ j'ai un fichier xml bien plus complexe que ca mais j'ai préférer simplifier, d'autant que le probleme reste présent)
J'ai également ma fonction onLoad pour l'objet XML 'donnees' obtenu par parsing qui fonctionne impec.
Mon problème :
Je veux lister le contenu de mon fichier xml de facon RECURSIVE
(qui dit arborescence, dit circulation récursive, ca va de soit...)
Mais: Flash semble allergique au récursif...
j'ai le code suivant:
- au sain de l'onLoad de mon objet xml je fait appelle à la fonction f1 qui prend en parametres l'objet xml 'donnees'.
f1 = function ( ObjetXML )
{
rec ( ObjetXML , "");
}
- rec est la fonction recursive proprement dite qui va explorer branche
par branche l'arborescence xml et l'afficher dans la console de sortie
texte de Flash.
rec = function ( ObjetXML , retrait )
{
trace ( retrait + ObjetXML.nodeName );
if ( ObjetXML.childNodes.length != 0 )
{
for ( i=0 ; i<ObjetXML.childNodes.length ; i++ )
{
rec ( ObjetXML.childNodes[i] , retrait + " " );
}
}
}
En sortie, j'obtiens :
null
racine
bruce
tsoin1
tsoin2
et c'est tout !!
Pourquoi n'ai je pas :
null
racine
bruce
tsoin1
tsoin2
kate
tsoin1
tsoin2
rodolf
tsoin1
tsoin2
En gros, une fois la fonction terminée, Flash n'est pas foutu de retourner dans la fonction appelante...