Bonjour,
voici ce dont je dispose:
un fichier xml à parser:
j'ai essayé avec le programme suivant:
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>
Classe PersonneHandler:
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
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"); } }
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 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(); } }
j'ai le resultat suivant:
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()"); } } }
ce qui veut dire pour moi que la methode startElement n'est pas executée!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
svp aidez moi!
Partager