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:
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:
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