Parcours d’un fichier XML
Merci beaucoup pour cette réponse :)
Effectivement, ça m’a l’air d’être une très bonne idée de faire une classe et d’y inclure les éléments après. Je vais étudier cette solution de plus près.
J’ai écris ça, qui me donne un résultat, pour l’instant, satisfaisant, mais qui, me montrera vite ses limites :
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 33
| @Test
public void TestXml() throws JDOMException, IOException {
String fileName = "/home/user/workspace/search-lms/lms-superpom/lms-admin/src/main/resources/lms-admin.xml";
SAXBuilder builder = new SAXBuilder();
Document document;
document = builder.build(fileName);
Element rootNode = document.getRootElement();
ArrayList<Site> siteList = new ArrayList<Site>();
Site currentSite;
if("sites".equals(rootNode.getName())){
for(Element site : rootNode.getChildren("site")){
currentSite = new Site();
currentSite.add(site.getAttributeValue("id"));
for(Element countries : site.getChildren("countries")){
for(Element country : countries.getChildren("country")){
currentSite.add(country.getAttributeValue("id"));
for(Element servers : country.getChildren("servers")){
for(Element server : servers.getChildren("server")){
currentSite.add(server.getAttributeValue("name"));
}
}
}
}
siteList.add(currentSite);
}
System.out.println(siteList);
}
} |
Avec la classe Site :
Code:
1 2 3 4 5 6 7 8 9 10
|
import java.util.ArrayList;
public class Site extends ArrayList<String>{
public Site() {
}
} |
Résultat : [[BL, FR, 1.bl.p1.ci, 2.bl.p1.ci, 3.bl.p1.ci], [CA, FR, 7.bl.p1.ci, 8.bl.p1.ci, 9.bl.p1.ci, DE, 4.bl.p1.ci, 5.bl.p1.ci, 6.bl.p1.ci], [ZE, FR, null]]