Récupérer des info d'un fichier xml

mariam1990 Messages postés 31 Statut Membre -  
mariam1990 Messages postés 31 Statut Membre -
salut tout le monde :)

j'ai le fichier xml suivant :

<Resumes>
<info1>
<titre> unix </titre>
<auteur> mari </auteur>
</info1>
<info2>
<titre> ksh </titre>
<auteur> myriam </auteur>
</info2>
</Resumes>

je veux récupérer par exemple l'information mari à l'aide une commande unix mais je ne sais pas comment,
aidez moi svp
je suis bloquer
j'attends vos réponse

merci d'avance

8 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Que mari ou miryam aussi ?
    0
  2. mariam1990 Messages postés 31 Statut Membre 1
     
    je veux récupérer seulement que mari
    0
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    jp@MDK:~/tmpfs ssh$ cat mariam
    <Resumes>
    <info1>
    <titre> unix </titre>
    <auteur> mari </auteur>
    </info1>
    <info2>
    <titre> ksh </titre>
    <auteur> myriam </auteur>
    </info2>
    </Resumes>
    
    jp@MDK:~/tmpfs ssh$ sed -n '/<info1>/,/<\/info1>/{/<auteur>/ s/[^>]*>\([^<]*\).*/\1/p}' mariam
     mari
    
    jp@MDK:~/tmpfs ssh$

    ;-))
    0
  4. mariam1990 Messages postés 31 Statut Membre 1
     
    j'ai essayer la commande mais il me retourne le message suivant:

    sed: Function /<info1>/,/<\/info1>/{/<auteur>/ s/[^>]*>\([^<]*\).*/\1/p} cannot be parsed.
    :(
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Euh... ton fichier contient bien les mêmes motifs que l'exemple ci-dessus ?

      Tu es sous GNU/Linux ou Windows ?

      Peux-tu faire un copier/coller de ton fichier ainsi que de la commande tapée et du message d'erreur ?
      0
    2. mariam1990 Messages postés 31 Statut Membre 1
       
      je suis sous GNU/Linux et j'ai vérifier les motifs de mon fichier mariam.txt : j'ai les même motif que l'exemple

      la commande que tape est la suivant :
      $ sed -n '/<info1>/,/<\/info1>/{/<auteur>/ s/[^>]*>\([^<]*\).*/\1/p}' mariam.txt

      et j'ai le message suivant:
      sed: Function /<info1>/,/<\/info1>/{/<auteur>/ s/[^>]*>\([^<]*\).*/\1/p} cannot be parsed.
      0
    3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Quelle distrib ?
      Quelle version de "sed" ?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    avec awk (ou nawk sur Solaris)
    $ nawk '/<info1>/ {f=1};/<\/info1>/ {f=0}; /<auteur>/ && f {print $2}' fichier
    mari
    $ 
    0
  7. mariam1990 Messages postés 31 Statut Membre 1
     
    merci dubece ca marche :d
    mais est ce que tu peux m'expliquer la commande parce que j'ai rien saisie dans la syntaxe
    0
  8. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    /<info1>/ {f=1} quand une ligne contient <info1> f=1 (vrai)
    /<\/info1>/ {f=0} quand une ligne contient </info1> f=0 (faux), on simule le /<info1>/, /<\/info1>/ de sed
    /<auteur>/ && f {print $2} si une ligne contient <auteur> et f est vrai, on est entre <info1> et </info1>, donc on imprime le 2ème champ
    0
  9. mariam1990 Messages postés 31 Statut Membre 1
     
    merci pour ton aide :)

    j'ai une autre question, je sais bien que je pose trop de question mais je suis vraiment bloquée:(

    ma question est la suivante:
    dans la commande que tu ma monter l'action que va appliquer le awk est d'écrire le résultat dans la sortie standard
    mais si on veut affecter le résultat à une variable comment on peut le faire??
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      VAR=$(nawk '/<info1>/ {f=1};/<\/info1>/ {f=0}; /<auteur>/ && f {print $2}' fichier)
      0
    2. mariam1990 Messages postés 31 Statut Membre 1
       
      merciii pour les réponse vous m'avez bcp aider
      0