Bonjour,
J'hésite sur la meilleure façon de lire un fichier XML à plusieurs niveaux dans le but d'alimenter 2 tables normalisées.
Concrètement j'ai un fichier XML de cette forme :
J'ai donc plusieurs occurrences NIVEAU1 dans mon fichier, et au sein de chaque NIVEAU1, je peux avoir plusieurs OCCURENCES NIVEAU2, avec les données qu'elles comportent.
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 <SET> <NIVEAU1> <INFO1>Valeur1</INFO1> <INFO2>Valeur2</INFO2> ... <NIVEAU2> <INFO3>Valeur3</INFO3> <INFO4>Valeur4</INFO4> </NIVEAU2> <NIVEAU2> <INFO3>Valeur5</INFO3> <INFO4>Valeur6</INFO4> </NIVEAU2> ... </NIVEAU1> <NIVEAU1> ... </NIVEAU1> </SET>
Par rapport au paramétrage de la structure de mon composant XML dans Talend, j'ai trouvé 2 manières de faire :
- Soit je paramètre le Absolute XPath expression à /SET/NIVEAU1
Dans ce cas, j'ai en sortie une ligne par NIVEAU1, mais je ne récupère que le premier groupe d'information NIVEAU2 pour chaque NIVEAU1
- Soit je le paramètre à /SET/NIVEAU1/NIVEAU2, mais dans ce cas, j'ai une ligne pour chaque NIVEAU2, avec les informations du NIVEAU1 correspondant qui sont répétées.
Pour revenir à ma problématique d'alimenter mes 2 tables normalisées : je veux donc une ligne par NIVEAU1 dans ma première table, et une ligne par NIVEAU2 dans ma 2ème table.
Quelle serait la meilleure manière de faire ?
Merci,
Nicolas
Partager