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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
java.lang.ClassCastException: org.jdom.Element
Voici le fichier XML :

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>
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
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 ..     
 
   }
}
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 ..?

D'avance merci pour votre aide