L'exemple donné au lien suivant http://cynober.developpez.com/tutoriel/java/xml/jdom/ marche effectivement tres bien pour le fichier XML presenté mais pose des problemes avec un fichier n'ayant pas la meme structure. J'ai bessoin de lire mon fichier xml suivant (par exemple) :
Pour l'ouverture du fichier xml pas de probleme, c'est pour la lecture qu'il n'y a plus concordance avec l'exemple JDOM.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <?xml version="1.0" encoding="UTF-8"?> <listeqcm> <qcm nom="Connaissances generales"> <question requete="Quel est la hauteur de ?"> <reponse correct="oui">100m</reponse> <reponse correct="non">5000m</reponse> <reponse correct="non">2m</reponse> </question> <question requete="Fait-il beau ?"> <reponse correct="oui">oui</reponse> <reponse correct="non">non</reponse> </question> <question requete="Y pleux ?"> <reponse correct="non">oui</reponse> <reponse correct="oui">non</reponse> </question> </qcm> </listeqcm>
Voici l'equivalent de l'exemple mais adapté a mon porg :
La coquille vient du fait de l'iterator qui ne vaut que 1 puisque je n'est qu'un Noeud <qcm> et donc ensuite il prend a la ligne suivant (<question> et me lit bien la premiere question mais seulement la 1ere.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 // pour la lecture void lecture() { //On crée une List contenant tous les noeuds "qcm" de l'Element racine List listQcm = racine.getChildren("qcm"); Iterator i = listQcm.iterator(); while(i.hasNext()) { //On recrée l'Element courant à chaque tour de boucle afin de //pouvoir utiliser les méthodes propres aux Element comme : //selectionner un noeud fils, modifier du texte, etc... Element courant = (Element)i.next(); System.out.println(courant.getChild("question").getAttributes()); } }
Ce que je voudrais c'est lire mes 3 questions. L'exemple fourni ne permet pas de la faire et j'ai beau avoir essayer plusieurs choses (des boucles, des methodes pour naviguer avec les iterators ect ..) rien a faire, je ne possede pas assez les connaissances pour le faire.
Quelqu'un peut-il m'aider svp ?