Récupérer des info d'un fichier xml
mariam1990
Messages postés
31
Statut
Membre
-
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
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
-
Salut,
Que mari ou miryam aussi ? -
-
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$
;-))
-
j'ai essayer la commande mais il me retourne le message suivant:
sed: Function /<info1>/,/<\/info1>/{/<auteur>/ s/[^>]*>\([^<]*\).*/\1/p} cannot be parsed.
:(-
-
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. -
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
hello
avec awk (ou nawk sur Solaris)$ nawk '/<info1>/ {f=1};/<\/info1>/ {f=0}; /<auteur>/ && f {print $2}' fichier mari $ -
merci dubece ca marche :d
mais est ce que tu peux m'expliquer la commande parce que j'ai rien saisie dans la syntaxe -
/<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 -
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??