Salut à tous !
Je débute en XML avec Java. j'aimerais comprendre un truc, je n'arrive pas à trouver la réponse.
Tout d'abord, j'ai choisis de développer le xml avec DOM.
J'ai un fichier xml tout simple :
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--<!DOCTYPE DocumentForMyParserDemo SYSTEM "DocumentForMyParserDemo.dtd">-->
<cinemas>
<cinema>
<name>UCG de Brouckere</name>
<address>130 Place de Brouckere 1200 Bruxelles</address>
<films>
<film>
<filename>La grande vadrouille</filename>
<seances>
<hour>11h30</hour>
<hour>14h30</hour>
<hour>17h30</hour>
</seances>
</film>
<film>
</cinema>
</cinemas>
Donc comme je suis en DOM, je récupère l'arbre.... ok !
Pour manipuler l'arbre, j'essaye de faire des fonctions de parcours. La
première est une fonction récursive qui compte les feuilles. Dans mon
exemple, il devrait y en avoir 6.
ma fonction est :
public int nbFeuilles(Node node){
int nbFeuilles=0;
NodeList nodes=node.getChildNodes();
if(nodes.getLength()==0){System.out.println("<"+node+">"+node.getNodeType());return 1;}
else for(int i=0;i<nodes.getLength();i++){
nbFeuilles+=nbFeuilles(nodes.item(i));
}
return nbFeuilles;
}
j'ai mis un System.out.println pour débeuguer. (j'affiche le noeud entre "<>" et le type de noeud).
L'exécution de cette fonction avec comme parametre la racine de l'arbre donne :
<
>3
<
>3
<UCG de Brouckere>3
<
>3
<130 Place de Brouckere 1200 Bruxelles>3
<
>3
<
>3
<
>3
<La grande vadrouille>3
<
>3
<
>3
<11h30>3
<
>3
<14h30>3
<
>3
<17h30>3
<
>3
<
>3
<
>3
<
>3
<
>3
Ce qui donne un total de 21 feuilles, alors qu'il devrait y en avoir 6 !! D'où viennent ces noeuds vides ?
Merci de m'eclairer !!
Laurent