Bonjour j'essayer de lire un fichier simple XML avec Dom en Java.
Voici mon fichier XML :
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 <?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>
En gros, j'envois a ma fonction le type (ici : hut_dos_com_piece)
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); } } }
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 :
J'obtiens un problème de CastException...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Element folder = (Element)liste_folders.item(j);
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.
Partager