Bonjour,

voici ce dont je dispose:
un fichier xml à parser:
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
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 : 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
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 : 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
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 : 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
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:
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!