Bonjour,
Je sais comment supprimer des fils avec removeChildren, mais je n'arrive pas a supprimer l'element courant quand je parcours mon arborescence. Je précise que je suis novice en java.
Voila à quoi ressemble mon fichier xml :
Je parcours donc mon arborescence et je cherche à écrire une méthode qui supprimerait un noeud en fonction de son Id.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 - <BDD> - <UserId Id="62"> <UserName>toto</UserName> <email>toto@toto</email> <language>FR</language> <data>07/11/2011</data> </UserId> - <UserId Id="53"> <UserName>tata</UserName> <email>tata@tata</email> <language>US</language> <data>2011/11/07</data> </UserId> </BDD>
Voilà ma méthode :
J'ai mis en rouge les points sur lesquels j'ai de gros doutes, .detach() parceque je ne l'ai jamais utilisé, et l'incrémentation parceque je ne sais pas si on peut continuer à parcourir une liste en ayant supprimé l'élément courant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 public void deleteXML(String Id) { List listUser = racine.getChildren(); Iterator i = listUser.iterator(); while (i.hasNext()) { Element courant = (Element)i.next(); if (courant.getAttributeValue("Id").equals(Id)) { courant.detach(); } } try { XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat()); sortie.output(document, new FileOutputStream("BDD.xml")); } catch (java.io.IOException e){} }
Merci d'avance!
Cordialement,
Bdloul
Partager