IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 1 & ActionScript 2 Discussion :

[AS2] Profondeur d'un doc XML en actionscript 2


Sujet :

ActionScript 1 & ActionScript 2

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de bractar
    Inscrit en
    Janvier 2004
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 224
    Par défaut [AS2] Profondeur d'un doc XML en actionscript 2
    Bonjour,
    j'ai besoin de savoir dynamiquement (avec actionscript 2) l'id de l'élément le plus profond de mon arbre XML.
    Dans l'exemple ci-dessous, j'aurais comme résultat "level_4". Je pense qu'il faut faire une fonction récursive mais je suis assez nul avec ça. Quelqqu'un pourrait m'aider?
    Merci d'avance


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?xml version="1.0" encoding="iso-8859-1"?>
    <root>
    	<item label="Item 1" id="item1">
    		<item label="Vestibulum" id="vestibulum">
    			<item label="Ipsum" id="ipsum" />
    			<item label="Primis" id="primis" />
    			<item label="Faucibus" id="faucibus" />
    		</item>
    		<item label="Luctus" id="luctus">
    			<item label="Ultrices" id="ultrices" />
    			<item label="Quisque" id="quisque" />
    			<item label="Vitae" id="vitae" />
    		</item>
    	</item>
    	<item label="Item 2" id="item2">
    		<item label="Level 1" id="level_1">
    			<item label="Level 2" id="level_2">
    				<item label="Level 3" id="level_3">
    					<item label="Level 4" id="level_4" />
    				</item>
    			</item>
    		</item>
    	</item>
    </root>

  2. #2
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    Lut,

    pas besoin de fct recursive rassure toi ..

    au pire des cas une boucle while ça devrait suffire.

    Utilise l'element childNodes.length lors de la lecture du fichier.

    ;)

  3. #3
    Membre confirmé Avatar de bractar
    Inscrit en
    Janvier 2004
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 224
    Par défaut
    salut,
    comment tu fais?
    J'en suis pas si sur pour la récursivité, car je ne peux pas faire un nombre de boucles while ou for définie à l'avance (il peut y avoir 50 niveaux différents...)

    firstChild.childNodes.length me retournerait 2 dans ce cas mais il y a quatres niveaux différents pour ce 2nd noeud...

  4. #4
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    re,

    principe de programmation :

    la boucle for est utilisée pour un nombre d'iteration connu.

    la boucle while par contre peux effectuer un nombre d'iteration variable en fonction du contexte.


    mais excuse moi c'est vrai que tu as raison, une fct recursive serai le plus facile à faire.

    dans ton cas, il faudrait tester pour chaque noeud .. :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if( XMLnode.attributes.label != undefined)
    {
      nbNode ++;
    }else{
      // sortir de la fct rec
    }

  5. #5
    Membre confirmé Avatar de bractar
    Inscrit en
    Janvier 2004
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 224
    Par défaut
    merci mais t'aurais pas un exemple plus concret? (sans pour autant recréer l'objet xml...)
    merci

  6. #6
    Expert confirmé

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Par défaut
    Salut,

    essaie quelque chose comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function getNodeDepth(xn_:XMLNode):Number {
    	var nDepth:Number = 0;
    	for(var i:Number = 0; i<xn_.childNodes.length; i++) {
    		nDepth = Math.max(nDepth, getNodeDepth(xn_.childNodes[i]));
    	}
    	return nDepth + 1;
    }
     
    function getXmlDepth(xml_:XML):Number {
    	var nDepth:Number = 0;
    	for(var i:Number = 0; i<xml_.childNodes.length; i++) {
    		nDepth = Math.max(nDepth, getNodeDepth(xml_.childNodes[i]));
    	}
    	return nDepth;
    }
    A tester

Discussions similaires

  1. Comment fabriquer un doc.txt avec un doc.xml et un
    Par ktel dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 20/01/2006, 12h13
  2. pb de validation d'un doc xml
    Par linux dans le forum Valider
    Réponses: 3
    Dernier message: 25/08/2005, 11h51
  3. [DTD][java]Verifier qu'un doc XML est bien formé
    Par bart64 dans le forum Valider
    Réponses: 3
    Dernier message: 08/01/2005, 14h17
  4. Réponses: 3
    Dernier message: 27/01/2004, 16h15
  5. [xsl java]Appliquer une XSL à un String contenant doc XML
    Par aldo047 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 03/04/2003, 15h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo