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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : 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 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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!!
Partager