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

Format d'échange (XML, JSON...) Java Discussion :

Extraire les chemins d'un document XML [JDOM]


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 88
    Points : 51
    Points
    51
    Par défaut Extraire les chemins d'un document XML
    Bonjour,

    J'aimerais extraire tous les chemins (de racine aux nœuds feuilles) de l'arbre correspondant au document XML.

    J'ai utilisé le code suivant qui est écrit en java en utilisant JDOM:
    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
    static void getpath(Element elem, String path){        
     
        if(elem.getChildren()!= null)
        {
             List listt = elem.getChildren();
             Iterator it = listt.iterator();
             path= path+ "/" + elem.getName();
             System.out.println("path" +  path);
             while (it.hasNext())
             {
                   Element Fils =(Element) it.next();
                   getpath(Fils, path);
             } 
        }
        else
        {
             path = path + elem.getName();
        }
    }
    Exemple d'application
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?xml version="1.0" encoding="UTF-8" ?> 
    - <personne>
    - <etudiant classe="p2">
      <accept age="17ans" /> 
      </etudiant>
      <nom>karima</nom> 
      </personne>
    Résultat:
    path /personne
    path /personne/etudiant
    path /personne/etudiant/accept
    path /personne/nom
    Mais ce code affiche aussi des sous-chemins avant d'afficher les chemins désirés (de racine au nœuds feuilles). Donc comment je peux supprimer ces sous-chemins ?

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ben en n'affichant rien quand la liste des children n'est pas vide, tout simplement

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 88
    Points : 51
    Points
    51
    Par défaut
    Merci tchize pour ta réponse, mais malheureusement ne marche pas. j'ai essayé le code suivant :
    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
     
    static void getpath(Element elem, String path){		
           if(elem.getChildren()!= null)
    	      {
    		   List listt = elem.getChildren();
    		   Iterator it = listt.iterator();
    		   path= path+ "/" + elem.getName();
    		   while (it.hasNext())
    			{
    			    Element Fils =(Element) it.next();
    			    getpath(Fils, path);
    			} 
     
    		}
     
    		else
                      {
                        path = path + elem.getName();
    		    System.out.println("path" +  "/" + path);
    	          }
    }
    mais dans ce cas, aucun résultat affiché ?!! aidez-moi svp

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    ben en n'affichant rien quand la liste des children n'est pas vide, tout simplement
    Je ne vois cette condition nulle part dans ton code. Tu test sur le null, mais par sur la taille de la liste

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 88
    Points : 51
    Points
    51
    Par défaut
    Désolé tchize , j'ai pas compris ta proposition si vous pouvez me indiquer où je doit exactement modifier mon code. Merci beaucoup pour votre intérêt monsieur.

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (listeDesEnfants.empty())
       // afficher le noeud

  7. #7
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 88
    Points : 51
    Points
    51
    Par défaut
    Meciiiiiiiii infiniment monsieur tchize ta proposition elle marche très très bien vraiment chapeau

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DOM4J] Quel chemin pour un document XML compris dans un JAR
    Par vain_mich dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 19/06/2007, 17h59
  2. [XSLT] Extraire certaines balises d'un document XML
    Par Wookai dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 10/04/2007, 09h09
  3. [MPD] comment extraire le MPD d'un document XML ?
    Par walid0577 dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 02/04/2007, 23h11
  4. Réponses: 5
    Dernier message: 04/05/2006, 09h57
  5. comment associer les couleur a un document xml avec xslt
    Par moh_yougo dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 30/01/2006, 16h08

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