Bonjour j'essayer de lire un fichier simple XML avec Dom en Java.
Voici mon fichier XML :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="ISO-8859-1"?>
<folder_creation_tbo>
	<hut_dos_com_piece>
		<folder name="Commercial" type="hut_pie_commercial" path="/"/>
		<folder name="Prototypes and EI" type="hut_pie_proto_ei" path="/"/>
		<folder name="Conditionnement" type="hut_pie_conditionnement" path="/"/>
		<folder name="Laboratory Technic" type="hut_pie_labo_tech" path="/"/>
	</hut_dos_com_piece>
	<hut_dossier_client>
		<folder name="Contracts" type="hut_cli_contrats" path="/"/>
	</hut_dossier_client>
</folder_creation_tbo>
Voici mon fichier 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
39
 
Document document;
String xml_file="fichier.xml";
String nom_type="hut_dos_com_piece";
 
try{
	DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance();
	DocumentBuilder constructeur = fabrique.newDocumentBuilder();
	File xml = new File(xml_file);
	document = constructeur.parse(xml);
}catch(ParserConfigurationException pce){
	System.out.println("Erreur de configuration du parseur DOM");
	System.out.println("lors de l'appel à fabrique.newDocumentBuilder();");
}catch(SAXException se){
	System.out.println("Erreur lors du parsing du document");
	System.out.println("lors de l'appel à construteur.parse(xml)");
}catch(IOException ioe){
	System.out.println("Erreur d'entrée/sortie");
	System.out.println("lors de l'appel à construteur.parse(xml)");
}
 
String tab[] = new String[3];
ArrayList result = new ArrayList();
 
Element racine = document.getDocumentElement();
NodeList liste_type = racine.getChildNodes();
for(int i=0; i<liste_type.getLength(); i++){
	if(liste_type.item(i).getNodeName().equals(nom_type)){
		NodeList liste_folders = liste_type.item(i).getChildNodes();
		for(int j=0; j<liste_folders.getLength(); j++){
			Element folder = (Element)liste_folders.item(j);
			tab[0]=folder.getAttribute("name");
			tab[1]=folder.getAttribute("path");
			tab[2]=folder.getAttribute("type");
			System.out.println(tab[0]+" "+tab[1]+" "+tab[2]);
			result.add(j, tab);
		}
	}
}
En gros, j'envois a ma fonction le type (ici : hut_dos_com_piece)
et je veux récuperer un ArrayList de tous les élements avec les attributs
(ici élement folder avec attributs name, type et path).

Mon programme se plante sur la conversion du Node en Element :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Element folder = (Element)liste_folders.item(j);
J'obtiens un problème de CastException...

Je n'arrive pas à trouver comment lire simplement ce petit bout de XML...
C'est quand même pas si compliqué que ca ?

Merci pour vos réponses.