Bonjour a tous.

J'ai un problème avec un ClassCastException.
J'ai une classe qui travaille avec 1 fichier xml.
Son but est de vider le fichiers xml de tous les enfants de la racine.
Mais ca ne marche evidement pas.

un resumé de ma classe :
Code java : 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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
 
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
 
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
 
public class ApercuFormulaire {
 
	private Element racine;
	private Document d;
 
 
	/**
         * @param args
         */
	public static void main(String[] args) {
 
	}
 
	public void run(){
		parse("d:\\monXML.xml");
		empty();
		transform();
	}
 
	private void transform() {
		Source source = new DOMSource(d);
		File file = new File("D:\\monXML2.xml");
		Result resultat = new StreamResult(file);
 
		// Configuration du transformer
		TransformerFactory fabrique = TransformerFactory.newInstance();
		Transformer transformer;
		try {
			transformer = fabrique.newTransformer();
			transformer.setOutputProperty(OutputKeys.INDENT, "yes");
			transformer.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");
 
			// Transformation
			transformer.transform(source, resultat);
		} catch (TransformerConfigurationException e) {
			e.printStackTrace();
		} catch (TransformerException e) {
			e.printStackTrace();
		}
 
 
	}
 
	private void empty() {
 
		NodeList list = racine.getChildNodes();
		for(int i =0; i < list.getLength();i++ ) {
			Node n = (Node) list.item(i);
		        racine.removeChild(n);	
		}
 
		System.out.println(racine.toString());
	}
 
	private void parse(String fichier) {
		try {
			FileInputStream xml_input_file = new FileInputStream(fichier);
			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
			factory.setIgnoringComments(true);
			DocumentBuilder _builder = factory.newDocumentBuilder();
			d = _builder.parse(xml_input_file);
			racine = d.getDocumentElement();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (ParserConfigurationException e) {
			e.printStackTrace();
		} catch (SAXException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}	
	}
 
}

Et le fichier XML :
Code XML : 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
<?xml version="1.0" encoding="ISO-8859-1"?>
<observer>
 
	<date1 nom="date1" oblig="false" />
	<date2 nom="date2" oblig="true" />
	<date3 nom="datebis" oblig="false" />
	<date4 nom="Date4" oblig="true" />
	<date5 nom="Date5" oblig="false" />
	<date6 nom="Date6" oblig="true" />
	<date7 nom="Date7" oblig="true" />
	<date8 nom="Date8" oblig="false" />
	<date9 nom="Date9" oblig="true" />
	<date10 nom="Dat104" oblig="false" />
	<date11 nom="Date11" oblig="false" />
	<date12 nom="Date12" oblig="false" />
 
	<nombre1 nom="nombre1" oblig="true" />
	<nombre2 nom="nombre2" oblig="false" />
	<nombre3 nom="nombre3" oblig="false" />
	<nombre4 nom="nombre4" oblig="false" />
	<nombre5 nom="nombre5" oblig="false" />
	<nombre6 nom="nombre6" oblig="false" />
	<nombre7 nom="nombre7" oblig="false" />
	<nombre8 nom="nombre8" oblig="false" />
	<nombre9 nom="nombre9" oblig="false" />
	<nombre10 nom="nombre10" oblig="false" />
 
	<text1 nom="text1" oblig="true" type="champ">
		<val /><val />
	</text1>
	<text2 nom="text2" oblig="false"  type="champ">
		<val /><val />
	</text2>
	<text3 nom="textlist1" oblig="true" type="liste" >
		<val>valeur 1</val><val>valeur 2</val>
	</text3>
	<text4 nom="textlist2" oblig="false" type="liste" >
		<val>valeur 1</val><val>valeur 2</val>
	</text4>
	<text5 nom="text5" oblig="true"  type="champ">
		<val /><val />
	</text5>
	<text6 nom="text6" oblig="false"  type="champ">
		<val /><val />
	</text6>
	<text7 nom="text7" oblig="false"  type="champ">
		<val /><val />
	</text7>
	<text8 nom="text8" oblig="false"  type="champ">
		<val /><val />
	</text8>
	<text9 nom="text9" oblig="false"  type="champ">
		<val /><val />
	</text9>
	<text10 nom="text10" oblig="false"  type="champ">
		<val /><val />
	</text10>
 
</observer>

Au final, j'ai mon fichier qui reste inchangé :'(

Si je remplace par j'obtiens ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Unhandled event loop exception
Reason:
NOT_FOUND_ERR : Ce noeud n''existe pas dans ce contexte.
org.apache.crimson.tree.DomEx: NOT_FOUND_ERR : Ce noeud n''existe pas dans ce contexte.
	at org.apache.crimson.tree.ParentNode.removeChild(ParentNode.java:500)
	at com.structis.observer.uiparam.notion.typefiche.ui.view.ApercuFormulaire.empty(ApercuFormulaire.java:89)
Une idée de pourquoi ca ne marche pas ?

EDIT : oups, oublié de mettre la question