Salut,

Je travaille avec JDOM sur des fichier XMl representant des questions auxquelles, je pourrais ajouter ou supprimer des options de reponses. Voici un exemple du fichier XML:
<?xml version="1.0" encoding="UTF-8"?>
<Question>
<text>Ceci est un exemple de question</text>
<weigth>1</weigth>
<type>2</type>
<answerOption>
<answer id="1" text="option1" rigth="1" />
<answer id="2" text="option2" rigth="1" />
<answer id="3" text="option3" rigth="0" />
</answerOption>
</Question>
Je n'arrive pas a supprimer une option de reponse (l'element answer) specifique avec mon code. Ca supprime toujours la premiere option de reponse. Voici quelques fonction de mon code:

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
54
55
56
57
58
59
60
61
62
63
64
65
66
 
private static void readQuestion(String questionFileName)
 {
   //On crée une instance de SAXBuilder
      SAXBuilder sxb = new SAXBuilder();
      try
      {
         //On crée un nouveau document JDOM avec en argument le fichier XML, le parsing est terminé
         questionDocument = sxb.build(new File(questionFileName));
      }
      catch(Exception sax){}
 
    questionRoot = questionDocument.getRootElement();
 
 }
 
 
 
private static void saveQuestion(String fileName)
{
   try
   {
      //On utilise ici un affichage classique avec getPrettyFormat()
      XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
      //Remarquez qu'il suffit simplement de créer une instance de FileOutputStream
      //avec en argument le nom du fichier pour effectuer la sérialisation.
      sortie.output(questionDocument, new FileOutputStream(fileName));
 
   }
   catch (java.io.IOException e){}
}
 
 public static void removeAnswer(String questionFileName,int idAnswer)
  {
    String strIdAns=new Integer(idAnswer).toString();
 
    boolean find=false;
    Element currentAnswer=null;
 
    readQuestion(questionFileName);
 
     System.out.println("strIdAns = " + strIdAns);
 
     Element answerOption=questionRoot.getChild("answerOption");
 
     List listAnswer = answerOption.getChildren("answer");
 
    //On crée un Iterator sur notre liste
    Iterator answerIterator = listAnswer.iterator();
 
   while(answerIterator.hasNext() && find==false)
   {
     currentAnswer = (Element)answerIterator.next();
     String currentAnswerId=currentAnswer.getAttribute("id").getValue().trim();
 
     if(currentAnswerId.equals(strIdAns))
         {
 
           System.out.println("id = " + currentAnswerId);
           find=true;
         }
   }
 
   if(find==true)   answerOption.removeChild(currentAnswer.getName());
 
  }
Et dans le main:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
public static void main(String[] args)
{
      removeAnswer("question1.xml",3);
      saveQuestion("Newquestion1.xml");
   }
Merci pour toutes aides.