bonjour !
Je viens vous voir pour un petit problème dont je n'arrive pas à me défaire vu mes connaissances relativement faibles en xml/dom
Je possède un fichier XML ayant à peu près cette structure.
Le but de ce que je tente de faire est donc de récupérer les valeurs du fichier mais pour ce faire, il faut que je passe par un tableau de correspondance qui ressemble à cela :
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 <Contenus> <Convention> <codeConvention>xxxx</codeConvention> <dateConvention>jjmmaaaa</codeConvention> <entreprise> <NomDeNaissance>Toto</NomDeNaissance> <AdresseEtablissement> <NumeroVoie>4</NumeroVoie> <CodePostal>97139</CodePostal> </AdresseEtablissement> <CoordCaisseRetraite> <Nom>Cgrr</Nom> <AdresseFac> <NumeroVoie>7</NumeroVoie> <CodePostal>97110</CodePostal> </AdresseFac> </CoordCaisseRetraite> </entreprise> </Convention> <Convention> <codeConvention>yyyyy</codeConvention> <dateConvention>jjmmaaaa</codeConvention> <entreprise> <NomDeNaissance>Titi</NomDeNaissance> <AdresseEtablissement> <NumeroVoie>4</NumeroVoie> <CodePostal>97139</CodePostal> </AdresseEtablissement> <CoordCaisseRetraite> <Nom>Cgrr</Nom> <AdresseFac> <NumeroVoie>7</NumeroVoie> <CodePostal>97110</CodePostal> </AdresseFac> </CoordCaisseRetraite> </entreprise> </Convention> </Contenus>
Je tente d'atteindre donc ma valeur en faisant comme cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 tableauCorrespondance[0]="codeConvention"; tableauCorrespondance[1]="dateConvention"; tableauCorrespondance[2]="entreprise.NomDeNaissance"; tableauCorrespondance[3]="entreprise.AdresseEtablissement.NumeroVoie"; tableauCorrespondance[4]="entreprise.AdresseEtablissement.CodePostal"; tableauCorrespondance[5]="entreprise.CoordCaisseRetraite.Nom"; tableauCorrespondance[6]="entreprise.CoordCaisseRetraite.AdresseFac.NumeroVoie"; tableauCorrespondance[7]="entreprise.CoordCaisseRetraite.AdresseFac.CodePostal";
avec tagName = tableauCorrespondance[X].
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 private String getTextValue(Element ele, String tagName) { String textVal = null; NodeList nl = ele.getElementsByTagName(tagName); if(nl != null && nl.getLength() > 0) { Element el = (Element)nl.item(0); if(el.getFirstChild() != null) { textVal = el.getFirstChild().getNodeValue(); } } return textVal; }
Cela fonction très bien pour les éléments directement sous "<Convention>" comme le "codeConvention" ou "dateConvention" mais pour atteindre directement "entreprise.AdresseEtablissement.NumeroVoie" par exemple comment dois je faire ? Je comprend ce qui ne tourne pas rond : je tente d'atteindre le tagName "entreprise.AdresseEtablissement.NumeroVoie", mais celui-ci n'existant pas sous cette forme, je recois null. Mais je ne vois pas comment faire pour atteindre directement "NumeroVoie" (surtout qu'il existe plusieurs "NumeroVoie" à diffèrents endroits du fichier et que je ne peux pas toucher à cela)
Voici le code que j'utilise pour parcourir mon fichier :
Pouvez vous m'orienter vers une solution pour parcourir mon fichier et ainsi obtenir mes valeurs ?
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 DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance(); DocumentBuilder constructeur = fabrique.newDocumentBuilder(); Document document = constructeur.parse("monFichier.xml"); Element racine = document.getDocumentElement(); NodeList nodes = racine.getElementsByTagName("Convention"); if(nodes != null && nodes.getLength() > 0) { for(int i = 0 ; i < nodes.getLength();i++) { Element el = (Element)nodes.item(i); for(int j=0;j<tableauCorrespondance.length;j++) { String valeur = getTextValue(el,tableauCorrespondance[j]); } } }
Je vous remercie !
Pierre
Partager