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 :

Parser un fichier XML


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 169
    Par défaut Parser un fichier XML
    Bonjour ,

    j'ai un 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
    <?xml version="1.0" encoding="UTF-8"?>
    <bibliotheque>
     
    <livre numero="L1">
    <titre>les miserables</titre>
    <genre>Oeuvre</genre>
    </livre>
     
    <livre numero="L2">
    <titre>J2EE</titre>
    <genre>Programmation</genre>
    </livre>
     
    <livre numero="L3">
    <titre>les innovations qui vont changer notre vie</titre>
    <genre>Scientifique</genre>
    </livre>
     
    </bibliotheque>
    que je parse avec JDOM
    voila la classe 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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    package JDOM2;
    import java.io.*;
    import org.jdom.*;
    import org.jdom.input.*;
    import org.jdom.filter.*;
    import java.util.List;
    import java.util.Iterator;
    import org.jdom.Document;
     
    public class JDOM
    {
       static org.jdom.Document document;
       static Element racine;
     
       public static void main(String[] args) throws Exception
       {
          //On crée une instance de SAXBuilder
          SAXBuilder sxb = new SAXBuilder();
          try
          {
             //On crée un nouveau document JDOM avec en argument le fichier XML
             //Le parsing est terminé ;)
             document = sxb.build(new File("ressources/test.xml"));
          }
          catch(Exception e){}
     
        //On initialise un nouvel élément racine avec l'élément racine du document.
          racine = document.getRootElement();
          afficheALL();
       }
     
       static void afficheALL()
       {
          //On crée une Liste contenant tous les noeuds "livre" de l'Element racine
           List listLivres = racine.getChildren("livre");
     
          //On crée un Iterator sur notre liste
          Iterator i = listLivres.iterator();
          while(i.hasNext())
          {
             //On recrée l'Element courant à chaque tour de boucle afin de
             //pouvoir utiliser les méthodes propres aux Element
             Element courant = (Element)i.next();
     
             //On affiche le titre et le genre de l'element courant
             System.out.println("Titre :" + courant.getChild("titre").getText());
             System.out.println("Genre :" + courant.getChild("genre").getText());
             System.out.println("Numero :" + courant.getAttributeValue("numero"));
     
          }
       }
    }
    aprè l'execution il m'affiche dans la console ca :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Titre :les miserables
    Genre :Oeuvre
    Numero :L1
    Titre :J2EE
    Genre :Programmation
    Numero :L2
    Titre :les innovations qui vont changer notre vie
    Genre :Scientifique
    Numero :L3

    jusqua maintenant tout est bien

    c'est ca le parsing xml

    mon souci est comment faire le parsing avec un formulaire jsp en utilisant api jdom

    plus claire je veux quan je clique sur un bouton dans le formulaire il m'affiche les infos qui s'affiche dans la console dans une page web

    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
    Ben, au lieu de mettre toutes ces infos dans System.out, tu les mets dans une List<Livre>.

    Quel rapport avec XML ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 169
    Par défaut
    merci pour la reponse

    mais comment faire une liste dans laquelle je vais mettre ces informations ?

  4. #4
    Membre éprouvé Avatar de dev_2007
    Profil pro
    Inscrit en
    Août 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 98
    Par défaut
    Bonjour,
    Justement, au lieu d'afficher les résultats dans ta console tu crée une méthode par exemple qui permet de récupérer une liste des livres après avoir parser ton fichier XML puis tu l'exploites au niveau de ta jsp pour afficher le résultat attendu.

  5. #5
    Membre éprouvé Avatar de dev_2007
    Profil pro
    Inscrit en
    Août 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 98
    Par défaut
    Tu peux faire un truck qui ressemble à peu près à ça (pas testé -- juste un exemple)

    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
     
    public List<Livre> getAllBooks()
    	   {
    	      //On crée une Liste contenant tous les noeuds "livre" de l'Element racine
    	   List listLivres = racine.getChildren("livre");
    		Livre livre = null;
    		List<Livre> listResult = null;
    	  //On crée un Iterator sur notre liste
    	  Iterator i = listLivres.iterator();
    	  while(i.hasNext())
    	  {
    	     //On recrée l'Element courant à chaque tour de boucle afin de
    	     //pouvoir utiliser les méthodes propres aux Element
    	         Element courant = (Element)i.next();
     
    	         //On affiche le titre et le genre de l'element courant
    	     String titre =  courant.getChild("titre").getText();
    	     String genre =  courant.getChild("genre").getText();
    	     String numero = courant.getAttributeValue("numero");
     
    		 livre = new Livre(titre,genre,numero);//il faut avoir un constructeur à trois variables dans ta classe Livre
    		 listResult.add(livre);	 
     
     
    	      }
    En gros tu crée une méthode qui renvoi une liste des livres à partir de ton parse puis tu n'as qu'à faire l'appel au niveau de ta page jsp.

  6. #6
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 169
    Par défaut
    voila ma classe javabean Livre

    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
    package beans;
     
    public class Livre {
     
    	public String numero;
    	public String genre;
    	public String titre;
     
    	public Livre(String numero, String genre, String titre) {
    		super();
    		this.numero = numero;
    		this.genre = genre;
    		this.titre = titre;
    	}
    	public String getNumero() {
    		return numero;
    	}
    	public void setNumero(String numero) {
    		this.numero = numero;
    	}
    	public String getGenre() {
    		return genre;
    	}
    	public void setGenre(String genre) {
    		this.genre = genre;
    	}
    	public String getTitre() {
    		return titre;
    	}
    	public void setTitre(String titre) {
    		this.titre = titre;
    	}
     
    }
    et voila la methode getallbooks

    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
    public void getAllBooks()
    	   {
    	      //On crée une Liste contenant tous les noeuds "livre" de l'Element racine
    	   List listLivres = racine.getChildren("livre");
    		Livre livre = null;
    		List<Livre> listResult = null;
    	  //On crée un Iterator sur notre liste
    	  Iterator i = listLivres.iterator();
    	  while(i.hasNext())
    	  {
    	     //On recrée l'Element courant à chaque tour de boucle afin de
    	     //pouvoir utiliser les méthodes propres aux Element
    	         Element courant = (Element)i.next();
     
    	         //On affiche le titre et le genre de l'element courant
    	     String titre =  courant.getChild("titre").getText();
    	     String genre =  courant.getChild("genre").getText();
    	     String numero = courant.getAttributeValue("numero");
     
    		 livre = new Livre(titre,genre,numero);
    		 listResult.add(livre);	 
     
     
    	      }
       }
    maintenant il merste la jsp , comment je vais faire

  7. #7
    Membre éprouvé Avatar de dev_2007
    Profil pro
    Inscrit en
    Août 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 98
    Par défaut
    Est ce que t'as pu afficher déjà le contenu de ta liste que tu viens de créer pour voir ce qu'elle contient ??

Discussions similaires

  1. problème pour parser un fichier xml avec XML::Simple
    Par black_code dans le forum Modules
    Réponses: 3
    Dernier message: 30/01/2006, 19h32
  2. [xslt] Parser 2 fichiers XML
    Par malekms dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 30/12/2005, 12h22
  3. Parser un fichier XML
    Par Charlinecha dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 11/07/2005, 17h18
  4. [SAX] parser un fichier xml en Java
    Par royou dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 10/02/2005, 17h12
  5. parser des fichier .xml en perl
    Par djibril dans le forum Modules
    Réponses: 13
    Dernier message: 18/05/2004, 17h08

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