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 fichier XML via code Java


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
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 35
    Par défaut Lire fichier XML via code Java
    Bonjour,

    Je vous fait appel afin de m'aider à résoudre mon problème avec XML. En fait je veux extraire le contenu de certaines balises via un code java.
    Voici a quoi ressemble mon fichier XML :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="iso-8859-1"?>
    <!DOCTYPE Pige SYSTEM "test.dtd">
    <Pige date1="14/02/2013" dateGeneration="02/15/2013 12:19:50 AM">
    <A id="99">
    <B id="3708621" code="33083"   niveau="1" >
    <C Code1="1207" Code2="" />
    </B>
    </A>

    Et voici mon code java :

    Code java : 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
    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 said {
     
     
    	public static void main(String[] args) {
    	SAXBuilder builder=new SAXBuilder();
     
            try {
     
    		Document readDoc=builder.build(new File("test.xml"));
    			Element root=readDoc.getRootElement();
     
    			for(Element cur:root.getChild("A").getChildren("B")){
     
     
    				System.out.println(cur.getAttributeValue("Code1"));
    			}
     
     
     
     
    		} catch (JDOMException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
     
    	}
     
    }

    Mais à la fin il m'affiche les nulls, je ne sais pas pourquoi et je suis bloqué là dessus.
    Au plaisir de vous lire, bien à vous.

  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
    Ça doit être parce que Code1 est un attribut de la balise C, pas de la balise B.
    Comme tu ne le demandes que sur la balise B et que cet attribut n'y existe pas, getAttributeValue() renvoie null, comme attendu.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 35
    Par défaut
    oui, mais moi j'ai besoin de la valeur du Code1, est ce que vous avez des suggestions ??
    merci bcq

  4. #4
    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
    Oui, je suggère d'aller la chercher sur la balise C, au lieu de la balise B. Là où elle est, donc. Ça marcherait sûrement mieux.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 35
    Par défaut
    Bonjour,
    tout d'abord je vous remercie infiniment

    apres avoir mettre en place votre suggetions, voici 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    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 said {
     
     
    	public static void main(String[] args) {
    	SAXBuilder builder=new SAXBuilder();
     
            try {
     
    		Document readDoc=builder.build(new File("test.xml"));
    			Element root=readDoc.getRootElement();
     
    			for(Element cur:root.getChild("A").getChildren("C")){
     
     
    				System.out.println(cur.getAttributeValue("Code1"));
    			}
     
     
     
     
    		} catch (JDOMException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
     
    	}
     
    }
    mais le résultat en exécutant n'est pas agréable l'IDE m'affiche :
    run:
    BUILD SUCCESSFUL (total time: 2 seconds)

  6. #6
    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
    Humm. root.getChild("A").getChildren("C").
    Est-ce que C est un enfant de A ? En regardant ton XML, j'ai bien l'impression que C est un enfant de B.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. remplir fichier XML via code Java
    Par sillimi18 dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 13/05/2013, 09h46
  2. Ajouter un root element à un fichier XML via Java
    Par filor dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 09/09/2009, 14h57
  3. ouvrir et lire document pdf via code java
    Par loic20h28 dans le forum API standards et tierces
    Réponses: 39
    Dernier message: 04/03/2009, 13h43
  4. Comment lire des données d'un fichier XML à partir de java
    Par kamaldev dans le forum Format d'échange (XML, JSON...)
    Réponses: 11
    Dernier message: 25/08/2006, 19h29
  5. Lire fichier XML en java
    Par loop4 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 17/05/2006, 16h46

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