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 :
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>
Je parcours donc mon arborescence et je cherche à écrire une méthode qui supprimerait un noeud en fonction de son Id.
Voilà ma méthode :

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){}
	}
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.
Merci d'avance!
Cordialement,
Bdloul