IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement de jobs Discussion :

Comment lire XML avec balises dupliquées


Sujet :

Développement de jobs

  1. #1
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 23
    Points
    23
    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 : 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
    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.

  2. #2
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 23
    Points
    23
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  3. #3
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 23
    Points
    23
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. lire xml avec attributs dans balises
    Par cd090580 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 08/01/2008, 19h27
  2. Réponses: 2
    Dernier message: 07/04/2006, 13h31
  3. Lire XML avec ASP
    Par Tops dans le forum ASP
    Réponses: 4
    Dernier message: 04/04/2005, 15h40
  4. generer xsl depuis xml avec balises inconues ?
    Par cedre dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 24/06/2003, 09h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo