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 valeur d'un élément XML avec JDOM [JDOM]


Sujet :

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

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Février 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 27
    Points : 26
    Points
    26
    Par défaut Récupérer valeur d'un élément XML avec JDOM
    Bonjour,

    j'ai un fichier XML aider moi svp je veut récupérer la valeur de l' élément <name id="13"> ,je veut que le code est programmé avec JDOM,merci d'avance .

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?xml version="1.0" encoding="utf-8"?>
    <article>
    <name id="13">Water polo</name>
    <conversionwarning>0</conversionwarning>
    <body>
    <figure>
    <image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" ......

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    pour récupérer le contenu d'un élément en jdom :

    pour récupérer un sous élément d'un élement,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    element.getChild(nomElement)
    ou pour récupérer une liste de sous éléments :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    element.getChildren(nomElement)
    pour récupérer l'élément racine, donc dans le cas de ton fichier : article

    un exemple complet :

    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
    38
    39
    40
    41
    42
     
    import java.io.File;
    import java.io.IOException;
     
    import org.jdom2.Document;
    import org.jdom2.Element;
    import org.jdom2.JDOMException;
    import org.jdom2.input.SAXBuilder;
     
    public class ReadXML {
    	public static void main(String[] args) {
    		try {
     
    			File file = new File("c:/temp/fichier.xml");
    			String text = getContent(file, "13");
    			System.out.println(text);
     
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
     
    	private static String getContent(File file, String id)
    			throws JDOMException, IOException {
     
    		SAXBuilder builder = new SAXBuilder();
     
    		Document doc = builder.build(file);
     
    		for (Element name : doc.getRootElement().getChildren("name")) {
     
    			if (id.equals(name.getAttributeValue("id"))) {
     
    				return name.getText();
     
    			}
     
    		}
    		return null;
    	}
     
    }

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Février 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 27
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Salut,

    pour récupérer le contenu d'un élément en jdom :

    pour récupérer un sous élément d'un élement,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    element.getChild(nomElement)
    ou pour récupérer une liste de sous éléments :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    element.getChildren(nomElement)
    pour récupérer l'élément racine, donc dans le cas de ton fichier : article

    un exemple complet :

    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
    38
    39
    40
    41
    42
     
    import java.io.File;
    import java.io.IOException;
     
    import org.jdom2.Document;
    import org.jdom2.Element;
    import org.jdom2.JDOMException;
    import org.jdom2.input.SAXBuilder;
     
    public class ReadXML {
    	public static void main(String[] args) {
    		try {
     
    			File file = new File("c:/temp/fichier.xml");
    			String text = getContent(file, "13");
    			System.out.println(text);
     
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
     
    	private static String getContent(File file, String id)
    			throws JDOMException, IOException {
     
    		SAXBuilder builder = new SAXBuilder();
     
    		Document doc = builder.build(file);
     
    		for (Element name : doc.getRootElement().getChildren("name")) {
     
    			if (id.equals(name.getAttributeValue("id"))) {
     
    				return name.getText();
     
    			}
     
    		}
    		return null;
    	}
     
    }
    Merci mais il ya un erreur dans la ligne(for (Element name : doc.getRootElement().getChildren("name"))
    *il me donne comme msg d'erreur:
    Type mismatch: cannot convert from element type Object to Element

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    c'est quelle version de jdom que tu utilises ? avec quel java ?

    je n'ai aucune d'erreur avec la v 2.0.5

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Si tu utilises une ancienne version de jdom pour un java avant java 1.5, avec un java 1.5 ou plus récent, il faudra faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ...
    
    for (Object nameObject : doc.getRootElement().getChildren("name")) {
    
    			Element name=(Element)nameObject;
    			if (id.equals(name.getAttributeValue("id"))) {
    et pour un java antérieur à 1.5

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    List children=doc.getRootElement().getChildren("name");
    for (int i=0; i<children.size(); i++) {
    
    			Element name=(Element)children.get(i);
    			if (id.equals(name.getAttributeValue("id"))) {
    mais ce serait mieux de mettre à jour tes lib jdom

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Février 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 27
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    c'est quelle version de jdom que tu utilises ? avec quel java ?

    je n'ai aucune d'erreur avec la v 2.0.5
    C'est bienn merci bcp elle marche, le problème été de la version JDOM que j'utilise 1.1.3

  7. #7
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par HackerNet Voir le message
    C'est bienn merci bcp elle marche, le problème été de la version JDOM que j'utilise 1.1.3
    oui cette version est faite pour java 1.2 à 1.4

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

Discussions similaires

  1. [JDOM] Parcourir les éléments d'un fichier XML avec JDOM : Autre Problème
    Par thonath dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 24/04/2014, 16h42
  2. [JDOM] Parcourir les éléments d'un fichier XML avec JDOM
    Par pomolo11 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 13/12/2013, 23h39
  3. [JDOM] Suppression d'un élément dans un fichier XML avec JDOM
    Par pomolo11 dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 08/12/2013, 11h36
  4. [JDOM] Récupérer le nom d'une balise XML avec JDOM
    Par cendrine15 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 10/04/2012, 15h18
  5. [JSP] Parsing XML avec JDOM
    Par benben13 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 26/08/2005, 17h19

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