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 :

Lire des noeuds fils [JDOM]


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 44
    Par défaut Lire des noeuds fils
    Bonjour,

    Je tente de lire les noeuds fils de mon fichier xml mais sans résultat.

    Je travaille sous Eclipse et j'utilise JDOM

    Voici mon fichier XML
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <!--declaration de la racine-->
     
    <typesInformations>
        <typeInformation>
            <nomTypeInformation>facutre</nomTypeInformation>
            <delaisTypeInformation>10</delaisTypeInformation>    
            <unitesInformations>
                 <uniteInformation>
                    <nom>factureUnite1</nom>
                    <prenom>idfact1</prenom>
                </uniteInformation>
     
                <uniteInformation>
                    <nom>factureUnite2</nom>
                    <prenom>idfact2</prenom>
                </uniteInformation>
            </unitesInformations>
            </typeInformation>
    </typesInformations>
    Je cherche à lire unitesInformations
    Voici le code Java
    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
    30
    31
    32
    33
    34
    35
    36
    37
    package com.XML;
     
    import java.io.*;
     
    import org.jdom.*;
    import org.jdom.input.*;
    import org.jdom.filter.*;
    import java.util.List;
    import java.util.Iterator;
     
    public class ReaderXML
    {
        /*-------------------------- création de l'element racine -------------------*/
            static Element racine ;
     
        /*----- creation d'un nouveau document basé sur la racine -------------------*/
            static org.jdom.Document document;
     
        /*----- afficherAll(), permet d'afficher les elements du document XML--------*/
            static void afficherAll(Element racine ,org.jdom.Document document )
               {
                  List liste = racine.getChildren("typeInformation");
                  Iterator i = liste.iterator();
                  List ll =null;
                  while (i.hasNext())
                   {
                      org.jdom.Element courant = (Element)i.next();
                      System.out.println( courant.getName());
                      System.out.println(courant.getChild("nomTypeInformation").getText());
                      System.out.println(courant.getChild("delaisTypeInformation").getText());
                       System.out.println(racine.getChild("typeInformation").getChild("unitesInformations").getChild("uniteInformation").getChild("nom").getText());//.getChild("page").getAttributeValue("name"));
                       System.out.println(racine.getChild("typeInformation").getChild("unitesInformations").getChild("uniteInformation").getChild("prenom").getText());//.getChild("page").getAttributeValue("name"));
     
                      System.out.println();
                   }    
          }   
    }
    Je ne réussis qu'à lire le premier. Lors de l’exécution il affiche :
    nomTypeInformation : facutre
    delais : 10
    idfact1
    Quelqu'un saurait-il m'expliquer comment procéder ?

    Merci d'avance pour votre aide.

  2. #2
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Ce n'est pas très joli, mais c'est l'idée.
    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
    static void afficherAll(org.jdom.Element racine,org.jdom.Document document) {
        List liste = racine.getChildren("typeInformation");
        Iterator i = liste.iterator();
        List liste2=null;
        Iterator i2=null;
        int count=0;
        while (i.hasNext()) {
            org.jdom.Element courant = (org.jdom.Element)i.next();
            System.out.println( courant.getName());
            System.out.println(courant.getChild("nomTypeInformation").getText());
            System.out.println(courant.getChild("delaisTypeInformation").getText());
            liste2=courant.getChild("unitesInformations").getChildren("uniteInformation");
            i2=liste2.iterator();
            while(i2.hasNext()) {
                count++;
                org.jdom.Element elem=(org.jdom.Element)i2.next();
                System.out.println("["+count+"] "+elem.getName());
                System.out.println("\t"+elem.getChild("nom").getText());
                System.out.println("\t"+elem.getChild("prenom").getText());
            }
            System.out.println();
        }
    }

  3. #3
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 44
    Par défaut
    Merci pour ton aide,, j'ai réussi a trouver la réponse!!

  4. #4
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Citation Envoyé par cendrine15 Voir le message
    Merci pour ton aide,, j'ai réussi a trouver la réponse!!
    Tu peux donc passer le sujet en .
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Accessoirement, on ne sait toujours pas ce qu'elle cherchait à faire, ni ce qu'elle a fait -_-°.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 44
    Par défaut
    Merci pour votre aide comme meme

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/07/2009, 23h09
  2. [XML] creer des noeuds fils
    Par bellak dans le forum C#
    Réponses: 1
    Dernier message: 24/12/2008, 19h20
  3. [XPATH] problème avec le nom des noeud fils
    Par DrDam dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 04/04/2008, 10h02
  4. Ajouter des noeuds fils à une treeview
    Par Lynecoln dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 01/10/2006, 19h04

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