1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    février 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2010
    Messages : 31
    Points : 15
    Points
    15

    Par défaut Découper un fichier XML contenant x fichiers XML à l'intérieur

    Bonjour,

    J’expose mon problème :
    Je reçois un fichier bancaire contenant x XML.

    Nom : im2.jpg
Affichages : 55
Taille : 50,9 Ko

    1- tFileInputFullRow pour effectuer la séparation des lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
    2- tMap pour repositionner en début de ligne qui a disparu avec tFileInputfFullRow
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+  row1.line
    3- tMap pour créer une variable IBAN pour restituer uniquement les IBAN à traiter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (row2.line.length()>=550)?row2.line.substring(522, 549): "" ->Var.IBAN
    SEPA1
    "FR76XXXXXXXXXXXXXXXXXXXXX".equals(Var.IBAN)

    SEPA2
    "FR76YYYYYYYYYYYYYYYYYYYYY".equals(Var.IBAN)


    4- En sortie de mon fichier positionnel j’ai un fichier avec chaque ligne correspondant à un xml

    Nom : im1.jpg
Affichages : 92
Taille : 255,5 Ko

    J’aimerai donc créer autant de fichier en sortie que de lignes
    Avez-vous une idée pour effectuer cette transposition ?

    Je vous remercie par avance de votre aide.

  2. #2
    Membre éclairé Avatar de MythOnirie
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    juin 2012
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : juin 2012
    Messages : 338
    Points : 688
    Points
    688

    Par défaut

    Bonjour,

    Avez-vous tenter de rajouter dans le nom du fichier final une séquence ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    février 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2010
    Messages : 31
    Points : 15
    Points
    15

    Par défaut

    c'est à dire ?? je ne comprend pas

  4. #4
    Membre éclairé Avatar de MythOnirie
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    juin 2012
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : juin 2012
    Messages : 338
    Points : 688
    Points
    688

    Par défaut

    Au lieu d'avoir dans le nom du fichier de sortie :
    "cheminrepretoire/monfichier.xml"
    Essayer quelque chose comme ça :
    "cheminrepretoire/monfichier_"+Numeric.sequence("s1",1,1)+".xml"

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    février 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2010
    Messages : 31
    Points : 15
    Points
    15

    Par défaut

    non ça ne fonctionne pas, le fichier en sortie comporte toujours tous les XML.

  6. #6
    Membre éprouvé Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2010
    Messages
    531
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    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 : 531
    Points : 1 061
    Points
    1 061

    Par défaut

    Bonjour everyBody,

    Je m'incruste dans la discussion !

    Pour avoir une sortie dans un nombre de ficher indéterminés il faut un enchaînement avec un flux iterate.

    a partir du tMap3 l'enchainement doit être le suivant :

    tMap3 -(main : sepa)-> tFlowToIterate -(iterate)-> tFixedFlowInput -(main)-> composant output.


    La sortie de sepa doit avoir une colonne de sortie par le nom de fichier comme indiqué par MythOnirie.

    le schema du tFixedFlowInput doit être le même que la sortie du tMap auquel au supprime le nom du fichier
    X = sepa.X
    Y = sepa.Y

    Ton composant de sortie le nom du fichier doit être sepa.nomDuFichier
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    février 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2010
    Messages : 31
    Points : 15
    Points
    15

    Par défaut

    Bonjour supergeoffrey,

    Merci pour tes précisions.
    En appliquant l'enchaînement que tu as décrit :

    tMap3 -(main : sepa)-> tFlowToIterate -(iterate)-> tFixedFlowInput -(main)-> composant output ("cheminrepretoire/monfichier_"+Numeric.sequence("s1",1,1)+".xml").

    J'ai bien plusieurs fichiers en sortie mais je n'ai plus de données à l'intérieur.
    Je véhicule la donnée jusqu'au tFlowToIterate puis je la perd après.
    Peut tu m'aider pour paramétrer le tFixedFlowInput car je ne l'ai jamais utiliser auparavant.
    Images attachées Images attachées  

  8. #8
    Membre éprouvé Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2010
    Messages
    531
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    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 : 531
    Points : 1 061
    Points
    1 061

    Par défaut

    Citation Envoyé par liner77 Voir le message
    Bonjour supergeoffrey,

    Merci pour tes précisions.
    En appliquant l'enchaînement que tu as décrit :

    tMap3 -(main : sepa)-> tFlowToIterate -(iterate)-> tFixedFlowInput -(main)-> composant output ("cheminrepretoire/monfichier_"+Numeric.sequence("s1",1,1)+".xml").

    J'ai bien plusieurs fichiers en sortie mais je n'ai plus de données à l'intérieur.
    Je véhicule la donnée jusqu'au tFlowToIterate puis je la perd après.
    Peut tu m'aider pour paramétrer le tFixedFlowInput car je ne l'ai jamais utiliser auparavant.
    ok le tFixedFlowInput est un input hardcodé.
    Tu édites ton schema, ça doit être le même que la sortie du tMap (qu'on appelle sepa dans cette exemple).
    Tu gardes 1 ligne, et une table seul. (Car on veut qu'un seul résultat)
    Tu vas avoir des colonnes qui s'ajoutent il faut que tu remplisses les valeurs.

    Si tu colonne se nomme A ta valeur sera sepa.A ...
    En fait tu as encore accès à la sortie de ton tMap à cet endroit.

    Pour que tu comprennes la différence entre un flow main et un flow iterate
    https://help.talend.com/reader/By3Z2...uBhDfYTnrkb6BQ
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

Discussions similaires

  1. Parser un fichier XML contenant des accents
    Par Shadew dans le forum Général Python
    Réponses: 4
    Dernier message: 17/06/2015, 19h27
  2. [XML] Passer un fichier CSV en un fichier XML
    Par stardeus dans le forum APIs
    Réponses: 3
    Dernier message: 14/03/2007, 18h01
  3. Réponses: 2
    Dernier message: 06/07/2006, 09h47
  4. Réponses: 6
    Dernier message: 14/04/2006, 12h18
  5. Réponses: 4
    Dernier message: 23/03/2006, 23h03

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