Merci pour ta réponse :)
Cependant, il est vrai que le code est assez long. Peut-être est-ce dû au fait que tu n’utilises pas JDOM (je ne sais pas).
Peut-être que c’est mieux sans JDOM.
J’ai continué à chercher, j’ai trouvé quelque chose que ressemblant à ça :
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
| public void TestXmlReader() throws IOException, JDOMException {
SAXBuilder builder = new SAXBuilder();
Document document = builder.build("/home/user/workspace/search-lms/lms-superpom/lms-admin/src/main/resources/lms-admin.xml");
Element rootNode = document.getRootElement();
System.out.println(rootNode);
if("sites".equals(rootNode.getName())){
List<String> items = new ArrayList<String>();
for(Element site : rootNode.getChildren("site")){
for(Element countries : site.getChildren("countries")){
for(Element country : countries.getChildren("country")){
items.add(country.getAttributeValue("id"));
for(Element servers : country.getChildren("servers")){
for(Element server : servers.getChildren("server")){
items.add(server.getAttributeValue("name"));
}
}
}
}
}
System.out.println(items);
}
} |
J’obtiens :
[Element: <sites/>] [fr, threes1.be.p1.ciao, threes2.be.p1.ciao, threes3.be.p1.ciao, fr, threes7.be.p1.ciao, threes8.be.p1.ciao, threes9.be.p1.ciao, de, threes4.be.p1.ciao, threes5.be.p1.ciao, threes6.be.p1.ciao]
Ce est plutôt le résultat attendu. Mais j’aimerais bien le récupérer sous une autre forme, plus facile à séparer…
Il faudrait que je trouve un système pour dire : quelque soit le nombre de serveurs, de pays ou de site que je rajoute, je veux que cet objet (un tableau, une variable ou autre chose) contienne le nom d’un site puis un pays de ce site avec les serveurs qui vont ensemble et recommencer tant qu’il reste des pays. Je ne sais pas s’il faudrait un objet pour chaque site ou non.
Partager