Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL > Talend
Talend Forum d'entraide sur Talend (Talend Open Studio, ...). Avant de poster --> FAQ Talend, Tutoriels Talend
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/05/2011, 17h39   #1
Candidat au titre de Membre du Club
 
Femme Corinne
Développeur informatique
Inscription : mai 2011
Messages : 24
Détails du profil
Informations personnelles :
Nom : Femme Corinne
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2011
Messages : 24
Points : 12
Points : 12
Par défaut Comment lire XML avec balises dupliquées

Bonjour,

Je débute sous Talend et j'ai un problème particulier pour lequel je ne trouve pas d'aide dans le forum.
Pourriez-vous m'orienter sur la méthode pour obtenir le résultat attendu s'il vous plait ?

Alors voilà, j'ai un fichier XML de ce type :
Code :
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<root>
<boucle>
  <Num>123456</Num> 
  <CadreD>
  <Parcours>
   <ParcoursChoix>
    <Type_Parcours>pc_t1</Type_Parcours> 
    <numeroParcours>pc_n1</numeroParcours> 
   </ParcoursChoix>
   <ParcoursChoix>
    <Type_Parcours>pc_t2</Type_Parcours> 
    <numeroParcours>pc_n2</numeroParcours> 
   </ParcoursChoix>
   <Trajets>
    <Chargement>
     <numeroChargement>t1_c_nc1</numeroChargement> 
     <numeroParcours>t1_c_np1</numeroParcours> 
    </Chargement>
    <Chargement>
     <numeroChargement>t1_c_nc2</numeroChargement> 
     <numeroParcours>t1_c_np2</numeroParcours> 
    </Chargement>
    <Trajet_Choix>t1_tc1</Trajet_Choix> 
    <Marchandises>
     <Tra_Nst_NatureMarchandise>t1_m_n1</Tra_Nst_NatureMarchandise> 
     <Tra_Nst_Conditionnement>t1_m_c1</Tra_Nst_Conditionnement> 
    </Marchandises>
    <Marchandises>
     <Tra_Nst_NatureMarchandise>t1_m_n2</Tra_Nst_NatureMarchandise> 
     <Tra_Nst_Conditionnement>t1_m_c2</Tra_Nst_Conditionnement> 
    </Marchandises>
    <Marchandises>
     <Tra_Nst_NatureMarchandise>t1_m_n3</Tra_Nst_NatureMarchandise> 
     <Tra_Nst_Conditionnement>t1_m_c3</Tra_Nst_Conditionnement> 
    </Marchandises>
   </Trajets>
   <Trajets>
    <Chargement>
     <numeroChargement>t2_c_nc1</numeroChargement> 
     <numeroParcours>t2_c_np1</numeroParcours> 
    </Chargement>
    <Chargement>
     <numeroChargement>t2_c_nc2</numeroChargement> 
     <numeroParcours>t2_c_np2</numeroParcours> 
    </Chargement>
    <Chargement>
     <numeroChargement>t2_c_nc3</numeroChargement> 
     <numeroParcours>t2_c_np3</numeroParcours> 
    </Chargement>
    <Trajet_Choix>t2_tc1</Trajet_Choix> 
    <Marchandises>
     <Tra_Nst_NatureMarchandise>t2_m_n1</Tra_Nst_NatureMarchandise> 
     <Tra_Nst_Conditionnement>t2_m_c1</Tra_Nst_Conditionnement> 
    </Marchandises>
    <Marchandises>
     <Tra_Nst_NatureMarchandise>t2_m_n2</Tra_Nst_NatureMarchandise> 
     <Tra_Nst_Conditionnement>t2_m_c2</Tra_Nst_Conditionnement> 
    </Marchandises>
   </Trajets>
  </Parcours>
 </CadreD>
</boucle>
</root>
Je cherche à extraire toutes les balises et aussi toutes les occurrences de ces balises.
J'utilise le composant tFileInputXML avec XPath="root/boucle"
Mon problème c'est que je n'ai que les premières balises de chaque type. Par exemple, j'ai 2 <Type_Parcours> car 2 <ParcoursChoix>, mais un seul est lu.

Comment puis-je faire pour lire les 2 informations Type_Parcours et en plus savoir si je lis la 1ère, ou la 2nde tout en sachant rattacher l'information à la bonne boucle ?

Merci d'avance pour votre aide.
briochette38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2011, 10h43   #2
Candidat au titre de Membre du Club
 
Femme Corinne
Développeur informatique
Inscription : mai 2011
Messages : 24
Détails du profil
Informations personnelles :
Nom : Femme Corinne
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2011
Messages : 24
Points : 12
Points : 12
Par défaut Reformulation

Bonjour,

N'ayant pas de réponse, je vais essayer de reformuler ma demande.

J'ai un fichier XML avec plusieurs balises répétées comme suit :
Code :
1
2
3
4
5
6
7
8
9
10
<root>
  <b1>balise1</b1>
  <b2>balise2</b2>
  <b3>
    <b31>balise31_1</b31>
  </b3>
  <b3>
    <b31>balise31_2</b31>
  </b3>
</root>
Actuellement je récupère uniquement : balise1|balise2|balise31_1

Comment puis-je lire aussi la valeur balise31_2 ?

Merci pour votre aide
briochette38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2011, 13h50   #3
Candidat au titre de Membre du Club
 
Femme Corinne
Développeur informatique
Inscription : mai 2011
Messages : 24
Détails du profil
Informations personnelles :
Nom : Femme Corinne
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2011
Messages : 24
Points : 12
Points : 12
Par défaut Solution

J'ai enfin trouvé la solution.
il faut positionner la balise de boucle au niveau du nœud où on souhaite lire toutes les occurrences, puis définir toutes les balises que l'on souhaite ensuite dans le XPath.
Dans mon cas cela donne la boucle sur la balise <b3> avec ensuite les XPaths :
balise <b1> : ../b1
balise <b2> : ../b2
balise <b31> : b31

Une fois trouvé cela semble facile
briochette38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h41.


 
 
 
 
Partenaires

Hébergement Web