Bonjour à tous,
Par avance merci de m'éclairer sur mon problème.
J'ai le fichier xml suivant :
Et je dois utiliser un parseur sax afin d'avoir en sortie sur mon pc la chose suivante :
Code XML : 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 <maisons> <maison id="1"> <RDC> <cuisine surface-m2="12">Evier Inox. Mobilier encastré</cuisine> <WC>Lavabo.</WC> <séjour surface-m2="38">Cheminée en pierre. Baie vitrée</séjour> <bureau surface-m2="14">Bibliothèque</bureau> <garage/> </RDC> <étage> <terrasse/> <chambre surface-m2="28" fenetre="3"> <alcove surface-m2="8"/> </chambre> <chambre surface-m2="18"/> <salledeBain surface-m2="15"> Douche, baignoire, lavabo </salledeBain> </étage> </maison> <maison id="2"> <RDC> <cuisine surface-m2="12">en ruine</cuisine> <garage/> </RDC> <étage> <mirador surface-m2="1"> Vue sur la mer </mirador> <salledeBain surface-m2="15">Douche</salledeBain> </étage> </maison> </maisons>
Maison 1:
superficie totale : 125 m2
Maison 2:
superficie totale : 28 m2
Ainsi j'ai crée une classe java étendant DefaultHandler et dans la méthode startElement j'ai ça :
ça ne va absolument pas. Je n'arrive pas à additionner la surface de mes pièces.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public void startElement(String nameSpaceURI, String localName, String rawName, Attributes attributs) throws SAXException { if(localName.equalsIgnoreCase("maison")){ System.out.println("Maison " + attributs.getValue(0) + " :"); } float surface = 0; for (int index = 0; index < attributs.getLength(); index++) { if (attributs.getLocalName(index).equalsIgnoreCase("surface-m2")){ surface += Float.parseFloat(attributs.getValue(index)); } System.out.println("superficie totale " + surface); } }
Surtout que dans la première balise maison. j'ai une alcôve dans la chambre qui fait donc partie des 28m2. donc je peux pas faire une boucle sur "surface-m2" mais du coup je sais pas du tout comment m'en sortir...
Si quelqu'un pouvait au moins me donner une piste de réflexion ça serait super sympa
Merci à vous !
Partager