Salut à tous!
J'ai un souci avec dom4j:
J'ai une méthode qui permet de supprimer un noeud d'une arbo XML:
En débuggant, j'ai pu vérifier que le noeud que j'essayais de détacher était bien celui que je voulais.Code:
1
2
3
4
5
6
7
8 public void deleteElementToEdit(int elemnIdx) { //Les noeuds sont stockes dans une Map. //Récupération de l'élément à supprimer: Element element = (Element) _elementsToEdit.get(elemnIdx); element.detach(); }
Mais, quand je regarde le fichier XML résultat, le noeud n'a pas été détaché...En revanche, certains de ses fils l'ont étés mais pas tous...
:? ...
Ma méthode qui réécrit dans le fichier XML de sortie est ultra simple et reprend ce qui est fait dans les tutoriaux de dom4j:
Je précise que j'ai aussi essayé avec la méthode Element:remove(Element)::boolean, et la méthode me retourne bien true, mais j'ai le même résultat... :(Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public void updateFile() throws IOException { XMLWriter writer = new XMLWriter(new FileWriter(_editFilePath)); writer.write(_editedDocument); writer.close(); // Pretty print the document to System.out OutputFormat format = OutputFormat.createPrettyPrint(); writer = new XMLWriter(System.out, format); writer.write(_editedDocument); // Compact format to System.out format = OutputFormat.createCompactFormat(); writer = new XMLWriter(System.out, format); writer.write(_editedDocument); }
Voici le type de fichier XML avec lesquels je travaille:
Le but de ma méthode de suppression est de supprimer un élément "user" dont je connais l'ID. J'utilise XPATH pour récupérer l'élément, et tout ce passe bien à ce niveau là... C'est vraiment quand je veux supprimer un élément, que j'ai pourtant bien identifié, que ça merde...!Code:
1
2
3
4
5
6
7
8
9
10<root> <users> <user id="0"> <login>Bob</login> <name>Léponge</name> <password>lawin</password> </user> </users> </root>
Si quelqu'un peut m'aider, je suis preneur!!
Merci d'avance!!