parser des fichiers xml en java
Bonjour,
voici ce dont je dispose:
un fichier xml � parser:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <?xml version="1.0"?>
<annuaire>
<personne id="0">
<nom>nom0</nom>
<prenom>prenom0</prenom>
<adresse>adresse0</adresse>
</personne>
<personne id="1">
<nom>nom1</nom>
<prenom>prenom1</prenom>
<adresse>adresse1</adresse>
</personne>
</annuaire> |
j'ai essay� avec le programme suivant:
Classe PersonneHandler:
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
| import java.util.LinkedList;
import java.util.List;
import java.util.jar.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class PersonneHandler extends DefaultHandler{
//résultats de notre parsing
private List<Personne> annuaire;
private Personne personne;
//flags nous indiquant la position du parseur
private boolean inAnnuaire, inPersonne, inNom, inPrenom, inAdresse;
//buffer nous permettant de récupérer les données
private StringBuffer buffer;
// simple constructeur
public PersonneHandler(){
super();
}
//détection d'ouverture de balise
public void startElement(String uri, String localName,
String qName, Attributes attributes) throws SAXException{
System.out.println("start element");
}
//détection fin de balise
public void endElement(String uri, String localName, String qName)
throws SAXException{
System.out.println("end element");
}
//détection de caractères
public void characters(char[] ch,int start, int length)
throws SAXException{
String lecture = new String(ch,start,length);
if(buffer != null) buffer.append(lecture);
}
//début du parsing
public void startDocument() throws SAXException {
System.out.println("Début du parsing");
}
//fin du parsing
public void endDocument() throws SAXException {
System.out.println("Fin du parsing");
System.out.println("Resultats du parsing");
}
} |
classe personne:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| public class Personne{
private int id;
private String nom, prenom, adresse;
public Personne(){}
public int getId(){return id;}
public String getNom(){return nom;}
public String getPrenom(){return prenom;}
public String getAdresse(){return adresse;}
public void setId(int id){this.id = id;}
public void setNom(String nom){this.nom = nom;}
public void setPrenom(String prenom){this.prenom = prenom;}
public void setAdresse(String adresse){this.adresse = adresse;}
public String toString(){
return new StringBuffer("Nom : ").append(nom).append(", ")
.append("Prenom : ").append(prenom).append(", ")
.append("Adresse : ").append(adresse)
.toString();
}
} |
et la classe ExempleSAX:
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
| import org.xml.sax.*;
import org.xml.sax.helpers.*;
import javax.xml.parsers.*;
import java.io.*;
public class ExempleSAX {
public static void main(String[] args){
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/RADIA/Desktop/annuaire.xml");
DefaultHandler gestionnaire = new PersonneHandler();
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()");
}
}
} |
j'ai le resultat suivant:
Citation:
D�but du parsing
end element
end element
end element
end element
end element
end element
end element
end element
end element
Fin du parsing
Resultats du parsing
ce qui veut dire pour moi que la methode startElement n'est pas execut�e!
svp aidez moi!