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

Linux Discussion :

Découper un fichier xml à l'aide de ksh


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 53
    Par défaut Découper un fichier xml à l'aide de ksh
    Bonjour,

    Voilà je cherche à découper un fichier xml et j'ai cru comprendre que le awk pourrait être une bonne solution. Seulement je suis déjà pas vraiment fort en ksh, je suis vraiment un niewbie total en awk, et je n'ai rien compris aux quelques exemples que j'ai trouvé sur le net, voilà donc pourquoi je viens vous demander de l'aide

    J'ai un fichier xml assez lourd que j'aimerai découper, c'est facile en utilisant un bout de code awk, seulement le critère sur lequel j'aimerai le découpé me complique la tâche, je m'explique, voici la structure de mon xml :
    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
     
    <?xml version="1.0" encoding="utf-8" ?>
    <offres>
      <catalogue>
          <stations>
              <station>
                 <residences>
                      <residence>
                          <produits>
                              <produit>
                                  <departs>
                                      <depart></depart>
                                  </departs>
                              </produit>
                           </produits>
                       </residence>
                  </residences>
               </station>
            </stations>
        </catalogue>
    </offres>
    Mon problème c'est que j'aimerai créer un fichier par station, <stations> comme suit :

    Fichier 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <offres>
    <catalogue>
    <stations>
    stations1
    ......."les autres balises"
    </stations>
    </catalogue>
    </offres>
    Fichier 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <offres>
    <catalogue>
    <stations>
    stations 2
    ......."les autres balises"
    </stations>
    </catalogue>
    </offres>
    Ainsi de suite.

    Une idée ??

    Merci d'avance

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 665
    Par défaut
    Bonjour,

    un élément de réponse : ici

    c'est transposable à ton problème, quasiment tel quel vers KSH, pour en faire un script awk.

    !!! Il faut adapter...
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 53
    Par défaut
    Bonjour,

    Merci de ta réponse. voilà ce que j'ai fait! "Je suis très débutant en ksh, alors patience..."

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    while read line
    do if [[ $line == "<stations>" ]]
       then <s>((flag)) && unset text</s>
            flag=1
            text="$line"
       elif ((flag))
       then text+=$'\n'"$line"
            if [[ $line == "</stations>" ]]
            then unset flag
                 echo "$text" >flux$((++n))
            fi
       fi
    done <flux.xml
    j'ai mis le script dans le même répertoire que mon fichier à découper "flux.xml"
    quand j'exécute le script que j'ai nommé cut.ksh il me donne ce message d'erreur : ./cut.ksh: syntax error at line 3 : `(' unexpected

    Merci d'avance.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 665
    Par défaut
    c'est à cause des balises du forum <s> et </s>.
    c'est pas du code.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 53
    Par défaut
    Merci. Mais ça ne marche tjs pas, il me met, ./cut.ksh[6]: flag: bad number.
    Enfait le code que j'ai copier dans le message précédent c'est tout ce que j'ai mis dans mon script, Il n y a pas d'autres paramètres a rajouter avant la boucle ?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 665
    Par défaut
    comment fais-tu s'exécuter le script ?
    le shebang est-il correct ?
    quelle version de ksh utilises-tu ?

    avec ksh93, je n'ai pas d'erreurs, et le script s'exécute correctement.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/02/2008, 18h08
  2. Script awk ou ksh pour découper un fichier xml
    Par Griffith dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 15/05/2007, 22h58
  3. [RegEx] Découper un fichier xml
    Par Dargos dans le forum Langage
    Réponses: 1
    Dernier message: 10/04/2006, 15h28
  4. [SAX] [Optimisation] Découper un fichier XML
    Par ujoodha dans le forum Format d'échange (XML, JSON...)
    Réponses: 14
    Dernier message: 27/10/2005, 17h02

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