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 :

Récupérer les éléments d'une balise dans un fichier xml complexe avec JDOM et java


Sujet :

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

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 15
    Points : 13
    Points
    13
    Par défaut Récupérer les éléments d'une balise dans un fichier xml complexe avec JDOM et java
    Bonjour,
    Tout d'abord, j'ai trouvé plusieurs discussions qui résout ce problème mais mon cas est un peu différent. En fait, je veux récupérer les composants d'un objet spécifique (ayant x comme nom) dans le fichier xml ci-dessous en utilisant JDOM. Je ne sais pas procéder? Y'a-t'il un moyen permettant de pointer directement sur la balise souhaitée ou bien je dois parcourir toute l’arborescente?
    Je me sens vraiment perdu et je sais pas comment procéder.

    Mon fichier xml ressemble à ça:

    Code XML : 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
    38
    39
    40
    <liste>
    <objects>
        <object id="" name="x">
            <composants>
                <composant id name>
                     ......
                </composant>
                <composant id name>
                     ......
                </composant>
     
            </composants>
        </object>
        <object id="" name="y">
            <composants>
                <composant id name>
                     ......
                </composant>
                <composant id name>
                     ......
                </composant>
     
            </composants>
        </object>
     <object id="" name="y">
            <composants>
                <composant id name>
                     ......
                </composant>
                <composant id name>
                     ......
                </composant>
     
            </composants>
        </object>
      <object id="" name="">
             .......
      </object>
    </objects>
    </liste>

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    JDOM propose un système de Filter qui évite de parcourir soi-même tous les objets.

    Mais depuis Java 8 et ses streams, il y a bien plus pratique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Element x = document   // on part de l'objet Document
      .getRootElement()    // on prend l'élément racine
      .getChild("objects") // puis son fils <objects>
      .getChildren()       // et à lui, ses fils. C'est une List<Element> qui contient les éléments <object>
      .stream()            // lire une Stream<Element> de cette List
      .filter(e -> Objects.equals(e.getAttributeValue("name"), "x")) // ne garder que les éléments qui ont le bon name
      .findAny()           // s'arrêter dès qu'on en trouve un. On a un Optional<Element>, car il n'est pas sûr que cet élément existe
      .get();              // extraire l'Element de l'Optional<Element>
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Bonjour,
    merci pour la réponse mis j"ai un petit souci concernant la méthode filter. Est ce que e représente l'élément à chercher ou l'élément en cours?

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    .....

    Euh, c'est pareil. L'élément en cours, on essaie de déterminer si c'est celui qu'on cherche. Donc bien sûr que c'est aussi l'élément à chercher.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Merci pour votre aide

Discussions similaires

  1. [XL-2010] Récupérer les éléments d'une abscisse dans un graphique ?
    Par marot_r dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/02/2016, 13h41
  2. Récupérer les éléments d'une hashmap dans une boucle
    Par khalous91 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 06/05/2015, 11h51
  3. Réponses: 5
    Dernier message: 26/08/2010, 15h47
  4. Réponses: 1
    Dernier message: 25/04/2008, 16h17
  5. Récupérer les valeurs d'un noeud dans un fichier XML
    Par yosthegost dans le forum Delphi
    Réponses: 1
    Dernier message: 30/05/2006, 17h38

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