Parcourir les fichiers XML
Bonjour à tous ;
Mon problème maintenant est le suivant, mon fichier XML à évoluer et il ressemble plutôt à ça ;
Code:
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
|
<racine>
<toto>
<titi titiName = "Salut
<tutu tutuName = "salut encore
<file fileName = "resalut"></file>
<file fileName = "resalut2"></file>
</ tutu >
<tutu tutuName = "reresalut
<file fileName = "salutos"></file>
<file fileName = "hi"></file>
</ tutu >
< tutu PkgName = "Encore tutu">
<file fileName = "salut2"></file>
<file fileName = "salut3"></file>
</ tutu >
< tutu PkgName = "Encore tutu">
... . . . . etc etc
</ tutu >
</titi>
. . . etc (encore des titi et des tutu...)
</toto>
<toto>
</racine> |
Et qu’est que je veux faire c’est pour chaque balise ‘titi ‘ je récupère l’attribut tititName avec ses attributs tutuName et file Name, ainsi de suite à chaque fois que je tombe sur un titiName je répète l’opération, en gros comment je récupère dans un fichier XML une balise mère et ses filles.
NB : le code que j’utilise pour lire mes balises est le suivant
Code:
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
|
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
Document doc = null;
Element root = null;
try {
builder = factory.newDocumentBuilder();
doc = builder.parse("File.xml");
root = doc.getDocumentElement();
NodeList listNo = null;
listNo = root.getElementsByTagName("titi");
for (int i = 0; i < listNo.getLength(); i++) {
Element e = (Element) listNo.item(i);
Test1 = e.getAttribute("titiName ");
}
NodeList listNo2 = null;
listNo2 = root.getElementsByTagName("tutu");
for (int j = 0; j < listNo2.getLength(); j++) {
Element e2 = (Element) listNo2.item(j);
Test2 = e2.getAttribute("tutuName ");
}
/** Imports */
NodeList listNo3 = null;
listNo3 = root.getElementsByTagName("file");
for (int k = 0; k < listNo3.getLength(); k++) {
Element e3 = (Element) listNo3.item(k);
Test3 = e3.getAttribute("fileName ");
}
} catch (Exception e) {
e.printStackTrace();
} |
Sachant que quand je fais un getter pour récupérer mon test1 par exemple j’ai que le dernier élément, en sortant de la boucle bien sur
Merci pour toute aide