Bonjour,
J'ai créé un fichier xml. J'arrive sans aucun problème à ajouter ou modifier un noeud, mais je n'arrive pas à en supprimer un.
J'ai donc créé le code de Test suivant et un petit fichier pour faire différents essais mais sans succès.
Pouvez-vous me dire où est mon erreur.
Merci d'avance
Gégé
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 <?xml version="1.0" encoding="UTF-8" standalone="no"?> <Agenda> <Personne> <Reference>138</Reference> <Nom>Martinelli</Nom> <Prenom>Aristide</Prenom> </Personne> <Personne> <Reference>139</Reference> <Nom>Dupont</Nom> <Prenom>Georges</Prenom> </Personne> <Personne> <Reference>140</Reference> <Nom>Martinelli</Nom> <Prenom>Aristide</Prenom> </Personne> </Agenda>
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Element; import org.w3c.dom.Node; import java.io.File; import org.w3c.dom.Document; import org.w3c.dom.traversal.DocumentTraversal; import org.w3c.dom.traversal.NodeFilter; import org.w3c.dom.traversal.NodeIterator; public class Test { static String fileName = "Test.xml"; protected static File fichier = null; public Test() { System.out.println(supprimer("139")); } protected static String supprimer(String myRef) { try { fichier = new File(fileName); if (!fichier.exists()){ System.out.println("fichier inconnu") ; System.exit(8);} DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); Document doc = factory.newDocumentBuilder().parse( fichier) ; DocumentTraversal traversal = (DocumentTraversal) doc; Node root = doc.getDocumentElement(); NodeIterator iterator = traversal.createNodeIterator(root, NodeFilter.SHOW_ELEMENT, null, true); Element personne = null; for (Node n = iterator.nextNode(); n != null; n = iterator.nextNode()) { Element element = (Element) n; if ("Personne".equals(element.getTagName())) personne = element; else if ("Reference".equals(element.getTagName()) && myRef.equals(element.getTextContent()) && personne != null) { System.out.println( element.getTagName() + " --> " + element.getTextContent()); root.removeChild(personne); return "Noeud supprimé "; } } return "Noeud non trouvé"; } catch (Exception ex) {System.out.println(ex.toString()); return "Erreur de suppression" ;} // erreur } public static void main(String[] args) { new Test(); } }
Partager