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

Shell et commandes GNU Discussion :

merger plusieurs fichiers xml


Sujet :

Shell et commandes GNU

  1. #1
    Débutant  
    Inscrit en
    Décembre 2008
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 163
    Points : 41
    Points
    41
    Par défaut merger plusieurs fichiers xml
    Bonjour à tous,

    je voudrais merger plusieurs fichiers XML. sur net, j'ai trouvé un script qui fait le merge entre deux fichiers xml parfaitement

    http://http://web.archive.org/web/20...~obecker/XSLT/

    la commande principale pour merger deux fichiers xml est "saxon file1.xml merge.xslt file2.xml > res.xml"

    maintenant pour merger plusieurs fichiers xml que je sauvegarde dans un repertoire "recep", j'ai édité ce script. toutefois, j'ai pas eu le résultat voulu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/bin/bash
     
    for i in `ls recep`
    do
       saxon tt merge.xslt with=$i > aux
       cp aux  tt     
    done
    merci pour votre aide

  2. #2
    Débutant  
    Inscrit en
    Décembre 2008
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 163
    Points : 41
    Points
    41
    Par défaut
    peut etre, ça peut servir à quelqu'un d'autres.

    la solution qui marche est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    #!/bin/bash
     
    for i in `ls recep/*` #recep est un repertoire contenant tous les fichiers xml 
    do
       saxon tt merge.xslt with=$i > aux   # tt est un fichier crée à lavance, je l'ai initialisé au contenu du premier fichier à merger, le fichier merge.xslt est disponible dans le hyperlink en haut 
       cp aux  tt     
    done

  3. #3
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 377
    Points
    19 377
    Par défaut
    Bonjour,

    les commentaires en shell sont introduits par #.

    on n'utilise pas ls dans un script !

    on ne boucle pas sur une substitution de commandes !

    il faut que tu te penches sérieusement sur la documentation de saxon : il peut combiner proprement plusieurs fichiers "en une seule passe", semble-t-il.
    est-ce que ça ne relèvera pas davantage de XSLT ?
    et un boucle shell ne fera que ralentir le processus.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Débutant  
    Inscrit en
    Décembre 2008
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 163
    Points : 41
    Points
    41
    Par défaut
    bonjour NBAH,

    pour les commentaires, merci pour votre remarque par contre pour le "ls", ou n'importe quelle autre commande linux, je pense que nous pouvons les utiliser dans un script. et pour le saxon, je connais que la synatxe qui merge deux fichiers, celle qui merge plusieurs je la connais pas.

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 377
    Points
    19 377
    Par défaut
    je pense que nous pouvons les utiliser dans un script
    d'une manière générale, utiliser for pour boucler sur la sortie d'une substitution de commande est une mauvaise pratique, car l'instruction for boucle sur chaque mot de la sortie.
    quand la sortie ne comporte qu'un seul mot, c'est insensible, bien sûr, ça n'en est pas moins une mauvaise pratique.

    on n'utilise pas ls dans un script, aussi parce que c'est inutile :
    - le shell sait lister les fichiers d'un répertoire
    - quand on veut des informations à propos d'un fichier, stat permet de les afficher dans un format choisi.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Débutant  
    Inscrit en
    Décembre 2008
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 163
    Points : 41
    Points
    41
    Par défaut
    merci N_BaH pour ces informations utiles

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par thouraya24 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #!/bin/bash
     
    for i in `ls recep/*` #recep est un repertoire contenant tous les fichiers xml
    Du coup, si, comme tu le dis, "recep" est un repertoire contenant tous les fichiers xml, alors autant faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/bin/bash
     
    for i in recep/*.xml #recep est un repertoire contenant tous les fichiers xml 
    do
       saxon tt merge.xslt with=$i > aux   # tt est un fichier créé à l'avance, je l'ai initialisé au contenu du premier fichier à merger, le fichier merge.xslt est disponible dans le hyperlink en haut 
       cp aux  tt     
    done

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

Discussions similaires

  1. import de plusieurs fichiers XML dans Access 2003
    Par frdek dans le forum Access
    Réponses: 7
    Dernier message: 09/08/2008, 19h39
  2. [C#] creer un dataset a partir de plusieurs fichiers XML
    Par ager1912 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 16/05/2006, 18h17
  3. Réponses: 3
    Dernier message: 16/02/2006, 18h38
  4. [XSL]récupérer une valeur de plusieurs fichiers XML
    Par snoop dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 05/02/2006, 00h32
  5. Uilisation de plusieurs fichiers xml à la fois
    Par elacsap78 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 10/01/2006, 16h00

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