Bonjour,
J'ai un petit souci pour parser du XML. J'essaie comme décrit dans les tutos de retransformer le noeud courant en élément mais c'est la que ça coince, j'obtiens ce message d'erreur
Voici le fichier XML :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 java.lang.ClassCastException: org.jdom.Element
et mon code java :
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 <cla> <clr> <inter> <Com Value = ""/> <Product Alias = "toto" Preview = ""/> <Mat> <Vect Vx = "1.0" Vy = "0.0" Vz = "0.0" CData = "Rx"/> <Vect Vx = "1.0" Vy = "0.0" Vz = "0.0" CData = "Ry"/> <Vect Vx = "1.0" Vy = "0.0" Vz = "0.0" CData = "Rz"/> </Mat> </Product> <Product Alias = "titi" Preview = ""/> <Mat> <Vect Vx = "1.0" Vy = "0.0" Vz = "0.0" CData = "Rx"/> <Vect Vx = "1.0" Vy = "0.0" Vz = "0.0" CData = "Ry"/> <Vect Vx = "1.0" Vy = "0.0" Vz = "0.0" CData = "Rz"/> </Mat> </Product> <Geom Alias = "titi" extr= "-2"/> <Point Ux= "1.0" Uy = "0.0" Uz = "0.0" /> <Point Ux= "1.0" Uy = "0.0" Uz = "0.0" /> </Geom > <Pict Href= "picturekjrer"/> </inter> </clr> </cla>
Lorsque je change le type de child en objet et que je caste l'objet en string j'affiche [Element: <inter/>]. Pourquoi je n'arrive pas à recaster en élément ..?
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 public void parseXml(ArrayList<String> arrXml) throws ParserConfigurationException{ // for each xml files found for(int i=0;i<arrXml.size();i++){ // create a new SaxBuilder instance SAXBuilder sxb = new SAXBuilder(); try { // create a new JDOM document document = sxb.build(new File(arrXml.get(i))); } catch(Exception e){ } // initialize document's root element elRoot = document.getRootElement(); // Build Query for insertion buildQueryFromXml(); } } static void buildQueryFromXml(){ elClashResults=elRoot.getChild("clr"); List listInterferences= elClashResults.getChildren("inter"); System.out.println("Nb Interferences: "+listInterferences.size()); // Create an iterator on list //Iterator <Element>iterator = listInterferences.iterator(); Iterator iterator=listInterferences.iterator(); while(iterator.hasNext()) { // Create a new element Element child = (Element) iterator.next(); // ca coince ici .. } }
D'avance merci pour votre aide
Partager