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 :

Plusieurs boucles dans un fichier XML


Sujet :

Développement de jobs

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 406
    Points : 174
    Points
    174
    Par défaut Plusieurs boucles dans un fichier XML
    j'ai un fichier XML en entrée dans lequel je souhaite bouclé sur 2 voir 3 balises. Pourquoi? car je veux recuperer les données qui sont inclus dans ces balises.
    J'ai une question , si je veux boucler sur une ou deux autres balises, cela est il possible ?
    Je m'explique :
    ci dessous un exemple ( pris sur une question posé qui ma aider n'empêche)

    <Racine>
    <Informationsgenerales>
    <Identifiantdossier>
    <NUMORGANISATION>1234</NUMORGANISATION>
    <NOMORGANISATION>TARTEMPION</NOMORGANISATION>
    </Identifiantdossier>
    <Personne>
    <QUAL>MONSIEUR</QUAL>
    <NOM>DUPONT</NOM>
    <PRENOM>ALBERT</PRENOM>
    <DATENAISS>2000-01-01</DATENAISS>
    </Personne>
    <Personne>
    <QUAL>MADAMER</QUAL>
    <NOM>DUPONT</NOM>
    <PRENOM>SIMONE</PRENOM>
    <DATENAISS>2000-02-02</DATENAISS>
    </Personne>
    </Informationsgenerales>
    <Informationsgenerales>
    <Identifiantdossier>
    <NUMORGANISATION>1234</NUMORGANISATION>
    <NOMORGANISATION>TARTEMPION</NOMORGANISATION>
    </Identifiantdossier>
    <Personne>
    <QUAL>MONSIEUR</QUAL>
    <NOM>DURAND</NOM>
    <PRENOM>ROGER</PRENOM>
    <DATENAISS>2000-03-03</DATENAISS>
    </Personne>
    <Personne>
    <QUAL>MADAME</QUAL>
    <NOM>DURAND</NOM>
    <PRENOM>SOPHIE</PRENOM>
    <DATENAISS>2000-04-04</DATENAISS>
    </Personne>
    <pays>
    <ville>MONSIEUR</ville>
    </pays>
    <pays>
    <ville>MONSIEUR</ville>
    </pays>

    </Informationsgenerales>
    </Racine>
    Dans le cas posté il fallait bouclé sur la balise "personne". mais je veux recupérer d'autre donnée , par exemple , je veux bouclé sur "pays" , quand je met juste le mapping sur la balise pays, je recuperer qu'un seule pays et j'ai que ce pays par la suite, or les pays change selon les personnes.
    Dans le Xpath j'ai mis personne à la fin ( /....../personne ==> donc bouclera sur la balise "personne")

    De plus j'ai mis loop à 50 et quand j'execute le job , il me sort que 50 lignes , or mon fichier en contient plus ? dois je augmenter le nombre de loop ?

    Merci pour vos lumières.

    Je sais pas si quelqu'un à déja été confronté à cela ou sinon une autre solution.

  2. #2
    Membre averti

    Homme Profil pro
    informatique
    Inscrit en
    Avril 2013
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 280
    Points : 406
    Points
    406
    Billets dans le blog
    1
    Par défaut
    je pense que tu as repondu à tes questions.Je te conseille de boucler sur le noeud principal et de mettre de group by sur les autres elements secodaires

  3. #3
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 795
    Points : 1 685
    Points
    1 685
    Par défaut
    Citation Envoyé par mano_bi Voir le message
    si je veux boucler sur une ou deux autres balises, cela est il possible ?
    Oui bien sûr, il y a des exemple sur d'autres tickets.

    http://www.developpez.net/forums/d15...ng-xml-talend/
    http://www.developpez.net/forums/d15...re-csv-talend/
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  4. #4
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 795
    Points : 1 685
    Points
    1 685
    Par défaut
    Citation Envoyé par mano_bi Voir le message
    De plus j'ai mis loop à 50 et quand j'execute le job , il me sort que 50 lignes , or mon fichier en contient plus ? dois je augmenter le nombre de loop ?
    Tu parles de quoi par "Loop"? Du champs "Limite" des composants tFileInputXml et tExtractXmlField?
    Si c'est le cas, tu en met pas !
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 406
    Points : 174
    Points
    174
    Par défaut
    Tu parles de quoi par "Loop"? Du champs "Limite" des composants tFileInputXml et tExtractXmlField?
    Si c'est le cas, tu en met pas !
    Je parlais bien de celui du champs limite.Merci

    Mon souci :

    J'ai suivie les deux liens que tu mas mis ainsi qu'un lien qui m'a aider à mes débuts sur les fichiers xml. Mais je coince (voilà pourquoi je répond)

    Dans mon fichier XML j'ai des boucles imbriqué dans d'autre boucle , et là je me perds je pense ou je m'y prend mal.

    Mon script xml est quasiment comme suit :
    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
    64
    65
    66
     
    <TEMPS>
    	<ENTETE>
    		<ANTENNE>XXXXXXX</ANTENNE>
    		<INTERFACE>
    			<NOM>XXXXXXXXX</NOM>
    			<VERSION>111111</VERSION>
    		</INTERFACE>
    		<DATE_DEMANDE>11111111111111111111</DATE_DEMANDE>
    		<DEMANDEUR>XXXXXXX</DEMANDEUR>
    		<AAA>
    			<NIVEAU>WWWWW</NIVEAU>
    			<RANG>WWWWWW</RANG>
    		</AAA>
    	</ENTETE>
            <DONNEES>
     
                    <A1>
                          <B2>
                                    <PREMIER>
                                           <ANT> XXXXX</ANT>
                                            <DATE> XXXXXXXXXX</DATE>
                                            <ORDRE>
                                                        <DEBUT> XXXXXXXXXXXXXXX</DEBUT>
                                                        <FIN> XXXXXXXXXXXXXXXXXXX</FIN>
                                             </ORDRE>
                                              <POSITION>
                                                      <DEPART>
                                                            <RANG> XXX</RANG>
                                                       </DEPART>
                                                      <NOM_PISTE>XXXXXXX</NOM_PISTE>
     
                                              </POSITION>
                                     </PREMIER>
                                       <PREMIER> ......</PREMIER>
                                       <PREMIER> ......</PREMIER>
                                        <PREMIER> ......</PREMIER>
                                         .......
     
                                  <SECOND>
                                             <ANT> XXXXX</ANT>
                                            <DATE> XXXXXXXXXX</DATE>
                                            <ORDRE>
                                                        <DEBUT> XXXXXXXXXXXXXXX</DEBUT>
                                                        <FIN> XXXXXXXXXXXXXXXXXXX</FIN>
                                             </ORDRE>
                                              <POSITION>
                                                      <DEPART>
                                                            <RANG> XXX</RANG>
                                                       </DEPART>
                                                      <NOM_PISTE>XXXXXXX</NOM_PISTE>
     
                                              </POSITION>
     
                                  </SECOND>
                                   <SECOND>...</SECOND>
                                   <SECOND>...</SECOND>
                                   <SECOND>...</SECOND>
                                   ......
                     </B2>
                 </A1>
     
           </DONNEES>
     
     
    </TEMPS>
    les données que je cherche à récupérer sont DATE_DEMANDE et à partir des balise "PREMIER" et "SECOND" (ANT,DATE,DEPART,FIN,RANG,NOM_PISTE).

    Quand je boucle au niveau de PREMIER je récupère bien toute les valeurs de cette balise et pour les données de la balise second je boucle sur une valeur.

    Comme composant j'ai un tFileiNPUTxml ------> 1 tReplicate -----> 2 tExtractXMLField (1 pour PREMIER et l'autre pour SECOND) et chacun à un tLogRow.

    Nom : tExtractXML.PNG
Affichages : 2242
Taille : 12,3 Ko

  6. #6
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 795
    Points : 1 685
    Points
    1 685
    Par défaut
    Citation Envoyé par mano_bi Voir le message
    les données que je cherche à récupérer sont DATE_DEMANDE et à partir des balise "PREMIER" et "SECOND" (ANT,DATE,DEPART,FIN,RANG,NOM_PISTE).
    Tu peux le faire en une boucle avec XPATH :p
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "/TEMPS/DONNEES/A1/B2/PREMIER | /TEMPS/DONNEES/A1/B2/SECOND"
    Nom : plusieursbouclefichierxml.png
Affichages : 2328
Taille : 96,4 Ko

    C'est pas plus simple



    ____

    Et si tu veux savoir si c'est un noeud PREMIER ou SECOND, tu peux ajouter la requête XPATH
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  7. #7
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 406
    Points : 174
    Points
    174
    Par défaut
    Merci , je connaissais pas cet façon de faire.
    ça marche , MAIS
    En fait je me suis peut être mal exprimé :
    Ta solution me récupère que la position en 1ere ligne, les autres ne sont pas extrait. en fait chaque position à une balise départ et nom_piste.
    En gros pour une balise PREMIER il peux avoir 1 ou n balise position,depart,rang , nom_piste et idem p .
    Un cas plus précis de mes balises .
    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
     
     <DONNEES>
     
                    <A1>
                          <B2>
                                    <PREMIER>
                                           <ANT> XXXXX</ANT>
                                            <DATE> XXXXXXXXXX</DATE>
    </ORDRE>
                                              <POSITION>
                                                      <DEPART>
                                                            <RANG> XXX</RANG>
                                                       </DEPART>
                                                      <NOM_PISTE>XXXXXXX</NOM_PISTE>
     
                                              </POSITION>
    <POSITION>
                                                      <DEPART>
                                                            <RANG> XXX</RANG>
                                                       </DEPART>
                                                      <NOM_PISTE>XXXXXXX</NOM_PISTE>
     
                                              </POSITION>
    <POSITION>
                                                      <DEPART>
                                                            <RANG> XXX</RANG>
                                                       </DEPART>
                                                      <NOM_PISTE>XXXXXXX</NOM_PISTE>
     
                                              </POSITION>
                                     </PREMIER>
                                       <PREMIER> <POSITION>
                                                      <DEPART>
                                                            <RANG> XXX</RANG>
                                                       </DEPART>
                                                      <NOM_PISTE>XXXXXXX</NOM_PISTE>
     
                                              </POSITION>
    </PREMIER>
    <PREMIER>
    <POSITION>
                                                      <DEPART>
                                                            <RANG> XXX</RANG>
                                                       </DEPART>
                                                      <NOM_PISTE>XXXXXXX</NOM_PISTE>
     
                                              </POSITION>
    </PREMIER>
    ...
    Je vais voir dans les XPATH, mais cette solution est sympa et simple .

    Merci

  8. #8
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 795
    Points : 1 685
    Points
    1 685
    Par défaut
    Si tu veux que ta données soit relative à la position
    cela te va ?
    Nom : plusieursbouclefichierxmldeux.png
Affichages : 2188
Taille : 94,6 Ko
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  9. #9
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 406
    Points : 174
    Points
    174
    Par défaut
    Avec retard je répond. C'était bien les chemin et ta dernière solution marche aussi.
    Surtout je me cassais la tête, il fallait juste que je mette dans le tFileInputXML "root" au niveau du Mapping et la Requête XPath boucle = "/" et au lieu de string en plutôt "document" , apres dans tXMLMap determiner ce qui est un loop (boucle) et le tour était jouer.

    Mais merci pour ton aide.

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Bénin

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 4
    Points : 5
    Points
    5
    Par défaut POSER MON PROBLEME
    BJR
    je veux réaliser en java fx un menu dynamique. je recupère les noms de menu, noms de menuitems et noms d'action d'une base que je vais afficher.
    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
    <BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/10.0.1" xmlns:fx="http://javafx.com/fxml/1">
       <top>
          <MenuBar prefHeight="40.0" prefWidth="600.0" style="-fx-background-color: #225a93;" BorderPane.alignment="CENTER">
     
              <menus>
              <Menu mnemonicParsing="false" style="-fx-color: ffff;" text="Fichier">
                <items>
                  <MenuItem mnemonicParsing="false" text="Fermer" />
                </items>
                </menus>
             <effect>
                <Blend />
             </effect>
          </MenuBar>
       </top>
    </BorderPane>
    Voila le squelette de mon document xml. l'objectif est d'insérer une boucle afin de faire varier les nom de menu,menuitem avec les information recu de la base.
    aidez moi car je n'ai aucune idée de commeni insérer un code java dans un document fxml

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

Discussions similaires

  1. Plusieurs enregistrements dans un fichier XML
    Par azewxc dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 09/08/2013, 10h25
  2. J-EDIT - Boucle dans un fichier XML
    Par vr_brandon dans le forum XML/XSL et SOAP
    Réponses: 0
    Dernier message: 08/04/2013, 11h33
  3. Ecrire plusieurs noeuds dans un fichier xml
    Par jojo1284 dans le forum VB.NET
    Réponses: 4
    Dernier message: 17/06/2011, 09h08
  4. Récupérer plusieurs balises dans un fichier XML
    Par sandddy dans le forum Langage
    Réponses: 3
    Dernier message: 28/01/2009, 14h48
  5. Declaration plusieurs DTD dans un fichier XML
    Par sebastien2222 dans le forum Valider
    Réponses: 4
    Dernier message: 02/03/2006, 14h34

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