Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
572 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Fonction récursive de parcours d'un arbre xml qui boucle indéfiniment

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Fonction récursive de parcours d'un arbre xml qui boucle indéfiniment

n°1873305
Siron
Posté le 15-04-2009 à 13:58:26  profilanswer
 

Bonjour, j'ai une fonction récursive de parcours d'un arbre xml (j'ai enlevé tout le superflu pour le problème) :
 

Code :
  1. function travelTree(root){
  2.   for (i = 0; i < root.childNodes.length; i++) {
  3.   travelTree(root.childNodes.item(i));
  4.   }
  5. }


 
Mon problème c'est qu'elle boucle indéfiniment.  je ne vois pas du tout pourquoi, surtout que dans firedebug l'arbre dom du xml est bien fini.
 
Ai-je oublié quelque chose ?
Merci d'avance.
 
Siron

mood
Publicité
Posté le 15-04-2009 à 13:58:26  profilanswer
 

n°1873347
olivthill
Posté le 15-04-2009 à 14:33:40  profilanswer
 

Ce code parait correct. Donc le problème se situe peut-être dans le "superflu" qui a été enlevé.

n°1873362
Siron
Posté le 15-04-2009 à 14:58:24  profilanswer
 

J'ai également testé en enlevant le superflu, et c'est pareil.
C'est quand j'itère sur les noeuds de type 1 que le problème arrive (en gros sur les noeuds non terminal, mais si je les prends pas je descends pas dans l'arbre).

n°1873399
Siron
Posté le 15-04-2009 à 15:35:48  profilanswer
 

J'ai solutionné le problème en passant via un debogueur, en fait il tournait en boucle sur une branche, la solution c'est :

 
Code :
  1. function travelTree(root){
  2.   borne = root.childNodes.length;
  3.   for (i = 0; i<borne; i++) {
  4.     travelTree2(root.childNodes.item(i));
  5.   }
  6. }
 

Mais je ne comprends pas pourquoi le fait de laisser le root.childNodes.length dans la condition du for provoque un problème, ça m'intrigue et m'inquiète.


Message édité par Siron le 15-04-2009 à 15:36:17
n°1873461
Siron
Posté le 15-04-2009 à 17:34:41  profilanswer
 

J'ai parlé trop vite, si ça ne boucle plus indéfiniment, l'appel de la fonction casse la boucle for, donc je ne parcours qu'une seule branche de l'arbre.
C'est assez déconcertant comme comportement, il n'y a pourtant rien de particulier.

n°1873540
Siron
Posté le 15-04-2009 à 21:41:32  profilanswer
 

Bon j'ai trouvé : il faut mettre un ***** de var devant chaque variable déclarée (y compris dans le for), sinon c'est une variable globale automatiquement.
 :o  :o  :o  :o

n°1873625
olivthill
Posté le 16-04-2009 à 09:14:15  profilanswer
 

Oui, tout s'explique (et j'aurais dû le voir parce que j'ai déjà eu un problème avec ça).
En tous cas, merci d'avoir posté la réponse et bonne continuation.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Fonction récursive de parcours d'un arbre xml qui boucle indéfiniment

 

Sujets relatifs
Combiner deux fichiers en fonction de colonnes communesExecuter une fonction quand on clique dans le vide
Algorithme d'arbre de decision:Jtree non affiché!Aidez moi svpPassage d'une fonction sans paramètre en paramètre d'une autre[résolu]
Fonction pour lister BDD mysqlFonction qui renvoie automatiquement à une page
pointeur et fonction langage Cexercice pointeur et fonction langage C
exercice pointeur et fonction langage CProbleme de syntaxe pour envoyer une chaine vers une fonction javascri
Plus de sujets relatifs à : Fonction récursive de parcours d'un arbre xml qui boucle indéfiniment


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR