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 :

Noeuds d'un document XML [JDOM]


Sujet :

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

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 57
    Points : 34
    Points
    34
    Par défaut Noeuds d'un document XML

    bonjour tout le monde,
    j'espere que je suis la bien venu dans votre forum,
    bon j'ais un petit probleme mais qui me blok vraiment,
    je veux recuperer tous les noeuds d'un document XML, j'utilise le jdom pour parsser mon document XML mais la je n'arrive pas a avoir tous les noeuds du document je peux recuperer que le premier niveau on utilisant la methode getchildren si qulqu'un peut m'aider je le serai tres reconnaissante
    merci atous



    je sais bien que avec le SAX c'est possible d'avoir tout les noeuds d'un document XML mais avec dom je ne trouve pas de solution j'ai chercher par tout mais sans resultat
    merci pour votre aide
    @bientot

  2. #2
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par kaninama

    bonjour tout le monde,
    j'espere que je suis la bienvenu dans votre forum
    Bien sûr que tu es bienvenue


    Citation Envoyé par kaninama
    bon j'ais un petit probleme mais qui me blok vraiment,
    je veux recuperer tous les noeuds d'un document XML, j'utilise le jdom pour parsser mon document XML mais la je n'arrive pas a avoir tous les noeuds du document je peux recuperer que le premier niveau on utilisant la methode getchildren si qulqu'un peut m'aider je le serai tres reconnaissante
    merci atous
    Je suis pas sur d'avoir bien compris... En fait tu voudrais pouvoir récupérer le nom de toutes noeuds sous la racine, c'est ca ?

  3. #3
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    regarde ici ça poura peut-être t'aider :
    http://java.developpez.com/faq/java/?page=langage_xml

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 57
    Points : 34
    Points
    34
    Par défaut merci
    Bonjour,‎
    Merci pour votre réponse "Remika" et "Wichtannet" ‎
    et pardonnez moi pour ce petit retard, ‎
    En faite remika j'ai déjà lu ce que vous m’avez donner et ce n'est ce ‎que je cherche moi j'utilise le jdom et je cherche a récupérer tous les ‎éléments d'un document XML avec le jdom, je sais bien que c'est ‎possible de le faire avec le dom et le xpath et même avec le sax mais ‎moi je le cherche avec le jdom mais malgré tout merci a vous;‎

    Wichtannet oui je vous récupérer tous les sous éléments mais le jdom ‎me permet d'avoir tous les sous éléments directe de la racine les autres ‎qui sont inclus dans ces sous éléments directe‎
    Pour être plus claire je veux avoir tous les éléments d'un document ‎c'est tout
    Merci pour vous Wichtannet‎
    Bon courage a tout le monde‎

  5. #5
    Membre habitué Avatar de minus
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 153
    Points : 177
    Points
    177
    Par défaut
    Doc sur JDom : http://cynober.developpez.com/tutoriel/java/xml/jdom/

    A mon avis les explications sont amplement suffisante pour réaliser la plupart des manipes courantes sur un fichier XML.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 57
    Points : 34
    Points
    34
    Par défaut bonjour
    Salut minus,‎
    Oui minus j'ai déjà consulté ce document,‎
    mais la ces des exemple pour débuter avec le jdom et ce que je cherche ne ce trouve pas (j'ai ‎un document plus intéressant si quelqu'un veut connaître tte les méthodes et les classe de ‎jdom voila l'adresse http://java.developpez.com/cours/)‎
    Mais moi je ne trouve pas encore ce que je cherche et j'en persuader que sa existe vu que avec ‎dom on peut réaliser ce que je veux et même avec le sax donc on jdom sa doit exister je s'ais ‎que je loupe quelque chose ‎
    merci pour votre aide minus
    bon courage a tt le monde ‎

  7. #7
    Membre confirmé Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Points : 552
    Points
    552
    Par défaut
    Bonjour,

    Un document XML est un arbre. Afin de collecter l'ensemble des noeuds, il suffit de le parcourir tous les noeuds en partant de la racine.

    Un parcours récursif avec la méthode Node.getChildren() est par conséquent la solution.


    Billy

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 57
    Points : 34
    Points
    34
    Par défaut
    Salut billynirvana, ‎
    merci pour ta réponse mais je vais peut être de décevoir car ce n'est pas la réponse, en faite le ‎‎getchildren ne me donne que les fils attacher directe a la racine les sous élément contenus ‎‎dans ces fils ne sont pas pris en considération, et vu que on ne connais pas a l'avance la ‎‎structure de notre arbre il est difficile d'appliqué (a mon avis) cette méthode sur chaque fils de ‎‎la racine ensuite si il a des fils ces dernier peuvent aussi contenir des fils et ainsi de suite c'est ‎‎un boucle infini et vu aussi que je suis nouvelle en java tout les petit programme que j'ai ‎‎réalisé ne sont pas efficaces pour reconnaître tout les noeuds(même l'élément le plus ‎‎imbriqué) j'espère que tu me comprends Billy,mais je te remercie d'avoir essayé de répondre a ‎ma question ‎
    Merci a tous ‎
    Bon courage à tout les programmeur a ma question ‎

  9. #9
    Membre habitué Avatar de minus
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 153
    Points : 177
    Points
    177
    Par défaut
    Non il a raison, avec une boucle recursive tu devrais pouvoir avoir toutes tes branches, meme celles qui ne sont pas directement liées à la racine (d'ou l'interet de la methode recursive).

    J'avais vu un exemple d'une methode faisant cela, si je la retrouve je te met un lien ou le code.

  10. #10
    Membre actif Avatar de @ldehan
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 215
    Points : 278
    Points
    278
    Par défaut
    Citation Envoyé par kaninama
    vu que on ne connais pas a l'avance la ‎‎structure de notre arbre il est difficile d'appliqué (a mon avis) cette méthode sur chaque fils de ‎‎la racine ensuite si il a des fils ces dernier peuvent aussi contenir des fils et ainsi de suite c'est ‎‎un boucle infini‎
    c'est pour cette raison qu'il a parler de récursivité et justement si ca marche !

    met nous le bout de code que tu utilise pour récupérer les fils de la racine et on devrait t'orienté pour rendre le parcours récursif.

    un document xml est forcement arborescent, je pense qu'un petit tutoriel sur le parcours d'un arbre t'aidera beaucoup : http://rperrot.developpez.com/articl...ctures/arbres/

  11. #11
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 57
    Points : 34
    Points
    34
    Par défaut
    Merci a vous tous, ‎
    D’accord minus moi aussi de ma part je vais essayer de la réalisé en fait j'essai depuis hier de ‎le mettre en œuvre et si je réussi, je vais vous mettre le code en cas ou quelqu'un on aura ‎besoin ‎
    Merci a tous ‎
    Bonne journée tout le monde ‎

  12. #12
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 57
    Points : 34
    Points
    34
    Par défaut
    Merci @ldehan,
    oui voila mon code

    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
    25
    26
    27
    28
    29
    SAXBuilder builder = new SAXBuilder();
                                    try {
    
                                        
                                          Document document=builder.build(document_choisi);
                                          Element racine = document.getRootElement();//la je récupère la racine 
                                          
               
                                     System.out.println(racine.getChildren());
                  
                      List descendants_document = racine.getChildren();//la j'ais la liste de tous les element directement attacher a la racine 
                                     List fils;
                                     nombre_element=descendants_document.size();
    //.......j'essai de réaliser cette méthode récursive mais je n'ai ‎ aucune idee comment sa peut fonctionner 
                                     Iterator i=descendants_document.iterator();
                        
                                    while(i.hasNext())
                                         {
                                            Element courant =(Element)i.next();
                                           if (courant.getChildren()!=null)
                                           fils=courant.getChildren();
                                           
                                           // index[indice][0]=racine.getName();
                                           // indice++;
                                         }
                                   //  }
                                    } catch (Exception exception) {
    
                            }
    J’ai essayé de minimiser le code au max pour que sa soit claire ‎
    Merci a vous tous

  13. #13
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 57
    Points : 34
    Points
    34
    Par défaut
    Merci pour le tutoriel @ldehan, ‎
    Oui c'est vrai il est intéressant je vais essayé d'en tiré quelque chose ‎
    Bonne journée a tous ‎

  14. #14
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 57
    Points : 34
    Points
    34
    Par défaut merci a tous
    Bonjour tout le monde,

    Enfin j'ai trouvé de solution à mon problème, ‎
    En fait il fallais réalisé une méthode de récursivité et faire un appelle de cette méthode dé ‎qu'on liste les 1er fils de la racine ‎
    Je vous fourni la méthode je suis persuadé qui va peut être aider d'autre personne ‎
    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
    25
    26
     public void traitement(Element e)‎
    ‎    {‎
    ‎        //........on liste les fils de l'element donner.............//‎
    ‎                  List listelement2=e.getChildren();‎
    ‎       ‎
    ‎        //........si il n'a d'element fils on le traite............//‎if( listelement2.size()==0)‎
    ‎            e.getText();‎
    ‎        ‎
    ‎        //........et pour chaque objet de la liste ..............//‎for(int cpt=0;cpt<listelement2.size();cpt++)‎
    ‎        {‎
    ‎        //...on verifie si les elements de la liste on des sous elments....//‎
    ‎          Element courant=(Element)listelement2.get(cpt);‎
    ‎          System.out.println(courant.getName());    ‎
    ‎          if(courant.getChildren()==null)‎
    ‎              courant.getText();//‎//.....et si il a des elements fils on applique de nouveau la fonction ....‎else‎
    ‎          {‎
    ‎              traitement(courant);‎
    ‎              ‎
    ‎          }//fin de else ‎
     
    ‎        }//fin de for ‎}
    Je remercie tout ce qui ont essayé de m'aider et je vous demande de me donnez votre avis sur ‎mon programme car je suis nouvelle et votre avis m’intéresse ‎

    Merci a tous ‎

    Bon courage a tt le monde‎

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

Discussions similaires

  1. Compléter les noeuds d'un documents XML
    Par scorp222 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 13/07/2014, 15h02
  2. objet pour stocker la liste des noeuds dans un document xml
    Par nancy maman dans le forum Général Python
    Réponses: 3
    Dernier message: 29/08/2011, 16h28
  3. Insérer qu'un noeud dans un document XML
    Par sliderman dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 08/01/2008, 17h57
  4. Accès aux noeuds d'un document XML
    Par Ashitaka dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/08/2007, 15h15
  5. [JAVA] Problème supression noeud d'un document XML
    Par vero59 dans le forum XML/XSL et SOAP
    Réponses: 10
    Dernier message: 16/08/2005, 16h12

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