Suppression d'un élément JDOM

- 19 nov. 2004 à 12:29
audreydco Messages postés 2 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 31 mars 2006 - 31 mars 2006 à 10:51
Bonjour,

j'utilise JDOM pour lire et enregistrer des fichiers XML et pour ça je n'ai pas de problème.
Maintenant, j'affiche dans une JList la liste d'éléments contenu dans un élément. Et je veux pouvoir supprimer du fichier les éléments sélectionnés dans la liste mais je n'y arrive pas !!!

Il faut que je précise que tous ces éléments ont le même nom : ce qui les différencient c'est leur attribut "lien" (ce que j'affiche dans la liste).

aOldEtat est un tableau de String : les valeurs des éléments que j'ai sélectionner dans la liste (mon attribut "lien")

for (int aI=0; aI<aOldEtat.length; aI++) {
boolean aTrouve=false;
List aEtats = aListeEtats.getChildren();
Iterator aIterator = aEtats.iterator();
while ((aIterator.hasNext())&&(!aTrouve)) {
Element aEtat = (Element)aIterator.next();
if (aEtat.getAttributeValue("lien").equals((String)aOldEtat[aI])) {
// Element aTemp = (Element)aIterator.next();
aListeEtats.removeContent(aEtat);
aTrouve=true;
}
}
}

Avec ça j'ai l'erreur
java.util.ConcurrentModificationException at
org.jdom.ContentList$FilterListIterator.checkConcurrentModification(ContentList.java:1041)
org.jdom.ContentList$FilterListIterator.hasNext(ContentList.java:752)

provenant de la ligne while ((aIterator.hasNext())&&(!aTrouve))
Je me suis dit qu'après avoir supprimer mon élément l'itérateur ne correspondait plus à rien donc j'ai rajouté
Element aTemp = (Element)aIterator.next();
et il me fait toujours pareil !!!

Quelqu'un peut-il m'aider ?

Merci d'avance

3 réponses

audreydco Messages postés 2 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 31 mars 2006
19 nov. 2004 à 14:15
J'ai contourné mon pb en remplaçant aListeEtats.removeContent(aEtat); par aEtat.setName("asupprimer"); puis en faisant
aListeEtats.removeChildren("asupprimer"); après être sortie du for. Là plus de problèmes !
0
gpcanto Messages postés 3 Date d'inscription mercredi 12 mai 2004 Statut Membre Dernière intervention 4 février 2019
31 mars 2006 à 10:37
Merci bien pour cette petite astuce bien pratique !
0
audreydco Messages postés 2 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 31 mars 2006
31 mars 2006 à 10:51
Contente que ça puisse servir

ça remonte à loin mais si je me souviens bien le problème venait du
fait qu'on n'a pas le droit de modifier la liste pendant qu'on la
parcourt.
0
Rejoignez-nous