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 :

Lecture fichier Xml (multiple)


Sujet :

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

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 9
    Par défaut Lecture fichier Xml (multiple)
    Bonjour voila je cherche a lire plusieurs balise dans un même nœuds.

    Xml :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="UTF-8"?>
    <personnes>
       <etudiant>
          <nom>Test0</nom>
          <nom>Test1</nom>
       </etudiant>
       <etudiant>
          <nom>Test2</nom>
       </etudiant>
    </personnes>


    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
    static org.jdom.Document document;
        static Element racine;
     
        public static void main(String[] args) {
            SAXBuilder sxb = new SAXBuilder();
     
            try {
                document = sxb.build(new File("Exercice2.xml"));
            } catch (Exception ex) {
                System.err.println("Document pas trouvé");
     
            }
            racine = document.getRootElement();
     
            affiche();
        }
     
        static void affiche() {
            List listEtudiants = racine.getChildren("etudiant");
     
            Iterator i = listEtudiants.iterator();
            while (i.hasNext()) {
     
                Element courant = (Element) i.next();
                System.out.println(courant.getChild("nom").getText());
     
            }
        }

    Voila donc je voudrais afficher Test0, Test1, Test2 mais je ne peux afficher que Test0 et Test2.

    Merci

  2. #2
    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
    Bonjour,

    Je ne comprends pas ce que tu ne comprends pas.

    Au début tu utilises bien getChildren("etudiant"), mais plus tard tu fais getChild("nom") au lieu de getChildren("nom"). Pourquoi ?!
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    Bonjour,

    Si tu veux lister tous les elements de "nom" pour chaque 'etudiant' au lieu de faire

    courant.getChild("nom").getText()
    Il faut faire:
    - un get children 'nom'
    - faire un iterator sur cette liste obtenue

Discussions similaires

  1. lecture fichier XML
    Par bhahmed dans le forum C++Builder
    Réponses: 5
    Dernier message: 18/09/2006, 08h40
  2. [C#-XML] - Problème de lecture fichier XML
    Par Gloups dans le forum Windows Forms
    Réponses: 9
    Dernier message: 08/08/2006, 00h40
  3. Lecture fichier xml aux caracteres accentués
    Par LFC dans le forum Modules
    Réponses: 2
    Dernier message: 13/02/2006, 19h45
  4. Réponses: 3
    Dernier message: 09/12/2005, 17h42
  5. [SAX] Problème lecture fichier xml
    Par BernardT dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 07/07/2005, 18h11

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