[jdom-interest] delete element from xml file

Deepa Janamatti (RBEI/EMT2) Deepa.Janamatti at in.bosch.com
Mon Dec 15 19:17:52 PST 2008


Using an Iterator might lead to ConcurrentModificationException. So, use ListIterator instead of Iterator to remove the element.


-----Original Message-----
From: jdom-interest-bounces at jdom.org [mailto:jdom-interest-bounces at jdom.org] On Behalf Of Laurent Bihanic
Sent: Tuesday, 16. December 2008 4:45 AM
To: meriem bessais
Cc: jdom-interest at jdom.org
Subject: Re: [jdom-interest] delete element from xml file


You should not iterate on children and modify the content directly on the 
element at the same time.
In your for() loop, use i.remove() to remove the current element.


meriem bessais a écrit :
> *I want to delete an element from xml-file. this is my code but the file 
> dosen't change when I test it.*
> *public* *static* String supp(){
>             *try*{
>             /racine/=/document/.getRootElement();
>             Element rac=/racine/.getChild("voitures");
>                List   listelt = rac.getChildren();
>                   *int* ok=1;
>                Iterator i = listelt.iterator();
>              *while*(i.hasNext()&& ok==1)
>            {
>                Element courrent = (Element)i.next();
>                *if* 
> (courrent.getAttribute("immatricule").getValue().equals("8345 tU 125")){
>                    System./out/.println(" 
> "+courrent.getAttribute("immatricule").getValue());
>                      //Element free = (Element)courrent.detach();
>                     System./out/.println(rac.getName());
>                     rac.removeContent(courrent);
>                      ok=0;
>                      //courrent.removeChild(couleur);
>                      System./out/.println("supprimé");
>                }
>            }}*catch*(Exception e){*return* e.getMessage();}
To control your jdom-interest membership:

More information about the jdom-interest mailing list