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 et exraire des données dans un matrice ou liste en 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 confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Mauritanie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 53
    Par défaut Parser un fichier XML et exraire des données dans un matrice ou liste en JAVA
    Bonjour

    Je suis entrain de travailler sur un projet qui consiste à importer un fichier xml dans un prog java. J'ai créé déjà des classe qui permet jusqu'à maintenant de parser le fichier xml et afficher les données dans la console. Maintenant je veux extraire ces données et le stocker sous forme d'un tableau ou matrice ou liste.

    Voilà le code que j'ai écrit :
    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
    package com.beingjavaguys.core;
    import java.io.File;
    import java.io.IOException;
     
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;
     
    import org.xml.sax.SAXException;
    import org.xml.sax.helpers.DefaultHandler;
     
    public class SAX_Graphe {
     
    	public static void main(String[] args){
     
     
    		AnalyseSAX a = new AnalyseSAX() ;
    		a.affichage_tab() ;
     
     
    		try{
    			// création d'une fabrique de parseurs SAX
    			SAXParserFactory fabrique = SAXParserFactory.newInstance();
     
    			// création d'un parseur SAX
    			SAXParser parseur = fabrique.newSAXParser();
     
    			// lecture d'un fichier XML avec un DefaultHandler
                            File fichier = new File("C:/Users/Cheibani/Desktop/xmlfile.xml");
    			DefaultHandler gestionnaire = new AnalyseSAX();
    			parseur.parse(fichier, gestionnaire);
     
                            }
     
    		catch(ParserConfigurationException pce){
    			System.out.println("Erreur de configuration du parseur");
    			System.out.println("Lors de l'appel à newSAXParser()");
    		}catch(SAXException se){
    			System.out.println("Erreur de parsing");
    			System.out.println("Lors de l'appel à parse()");
    		}catch(IOException ioe){
    			System.out.println("Erreur d'entrée/sortie");
    			System.out.println("Lors de l'appel à parse()");
    		}
     
     
     
    	}
    }
    Et voilà la deuxième classe :
    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
    53
    54
    55
    56
    package com.beingjavaguys.core;
     
    import java.util.ArrayList;
    import java.util.List;
     
    import org.xml.sax.Attributes;
    import org.xml.sax.SAXException;
    import org.xml.sax.helpers.DefaultHandler;
     
    public class AnalyseSAX extends DefaultHandler { 
    //declaration d'un matrice et les compteurs 
        //tableau pour recuperer les donnees extraitent du fichier 
        public List<List<String>> elementsAttributes = new ArrayList<List<String>>(); 
     
        public void startElement(String namespaceURI, String sName, String qName, Attributes attrs) throws SAXException { 
            String eName = sName; 
            if ("".equals(eName)) { 
                eName = qName; 
            } 
            System.out.println("balise ouverte:" + eName); 
     
    // recuperation de L'element trouvee dans le tableau --->ligne x colonne 0 
            List<String> ligne = new ArrayList<String>(); 
            ligne.add(eName); 
     
            if (attrs != null) { 
                //Listage des attributs 
                if (attrs.getLength() != 0) { 
                    System.out.println("Listage des parametres pour la balise " + eName + ":"); 
                } 
                for (int i = 0; i < attrs.getLength(); i++) { 
                    String aName = attrs.getLocalName(i);//recuperation du nom de l'attribut 
                    if ("".equals(aName)) { 
                        aName = attrs.getQName(i); 
                    } 
                    System.out.println(" " + aName + "=" + attrs.getValue(i) +"" ) ; 
     
    //recuperation des valeurs des attributs dans les colonnes de tableau ---> par exemple ligne 1 colonne y             
                    ligne.add(attrs.getValue(i)); 
                } 
            } 
            elementsAttributes.add(ligne); 
        } 
     
        public void affichage_tab() { 
            System.out.println(""); 
            System.out.println("le tableau est : "); 
     
            for (List<String> line : elementsAttributes) { 
                for (String column : line) { 
                    System.out.print(column+"  "); 
                } 
                System.out.println("kkkkk"); 
            } 
        } 
    }
    Merci en avance

  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 : 55
    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
    Billets dans le blog
    2
    Par défaut
    Salut,

    Quelle est la question ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Mauritanie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 53
    Par défaut
    Merci
    la question : comment je peux extraire les données de ficher xml et l'enregister dans un tableau ou autre type java ?

  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 : 55
    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
    Billets dans le blog
    2
    Par défaut
    A regarder rapidement ton code, c'est ce qu'il fait, il me semble : on récupère, dans elementsAttributes, une liste (ArrayList) de listes, contenant, le nom d'un élément suivi des valeurs de ses attributs. Si tu as réussi à en arriver là, tu dois pouvoir, à priori, faire évoluer ton code pour ajuster cette liste selon tes besoins. Qu'est-ce qu'il te manque en particulier ? Y'a-t-il une erreur quelque part lors de l'exécution ? Si c'est le cas, laquelle ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Mauritanie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 53
    Par défaut
    Bon, l'execution marche sans erreur mais la fonction affiche_tab() n'affiche rien toujours !!!!

  6. #6
    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 : 55
    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
    Billets dans le blog
    2
    Par défaut
    La méthode affichage_tab() n'est appelée qu'à un seul endroit : juste après avoir créé une instance de AnalyseSAX, qui n'est même pas celle qui est utilisée pour parser le fichier. C'est le parsing qui remplit la liste : donc c'est normal que ça n'affiche rien. Appelles affichage_tab() après avoir parsé le fichier, sur l'instance de AnalyseSAX qui a été utilisée pour parser.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. [XL-2010] Pb Macro pour ouvrir un fichier Word et copier des données dans des signets
    Par MPRIBOM dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 30/10/2014, 14h00
  2. [XML] Lire un fichier XML et Stockée les données dans la base
    Par Invité dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 19/07/2013, 21h32
  3. Réponses: 4
    Dernier message: 24/02/2010, 09h31
  4. regénération d'un fichier xml et insertion des donnés
    Par totomimi dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 24/06/2009, 18h42
  5. [MySQL] utilisé un fichier XML pour stocker des données ?
    Par italiasky dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/05/2007, 11h04

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