OVH Cloud OVH Cloud

un parseur pour bash ? Ou comment recuperer des infos d'un fichier xml avec bash ?

31 réponses
Avatar
martin
Bonjour,

Je cherche à récupérer certaine donnée d'un fichier xml en Bash.
Existe t'il un parseur ?
Si non, comment puis je faire ?

Par avance merci

Martin

10 réponses

1 2 3 4
Avatar
Unknown
<QIn>QIN_FLUX1</QIn>
<QFailure>QFAILURE_FLUX1</QFailure>

Voila aussi du XML valide.


je n'avais mis que le début du fichier évidemment.

Avatar
Étienne Labaume
Le Sun, 23 May 2004 19:08:40 +0200, ericb nous disait:

Ce qui va mener sur le débat suivant :


Où chercher quand on a besoin d'une définition correcte pour quelque
chose ayant trait à l'informatique ?


Peut-être: http://www.dict.org/bin/Dict

--
Tinou


Avatar
fabrice.bacchella
Unknown wrote in message news:...
<QIn>QIN_FLUX1</QIn>
<QFailure>QFAILURE_FLUX1</QFailure>

Voila aussi du XML valide.


je n'avais mis que le début du fichier évidemment.


Vous avez vu la ligne <QManager/> ?


Avatar
martin
Merci Merci pour votre aide precieuse.

J'avoue, je 'ignore comment utiliser awk, je fais un copier coller de mon
fichier xml, il s'agit d'un fichier de log
d'une applicaiton TrafficReport qui enregistre a intervel regulier (toutes
les 5 minutes) la quantite de donnees qui passe
sur la machine

Par exemple comment pourrait t'on recuperer la valeur de <Sent>XXXXXX</Sent>
de la date <Day dt="040520 21:50">

Meme si cela n'est pas forcement utile, (vu l'application) que pensez vous
de'utiliser Python pour faire ceci.
Je n'ai pas trouver d'exemple (code source)

par avance merci





<?xml version="1.0"?>
<TrafficReport>
<Filter Id="1">
<Name>All traffic of My Computer</Name>
<Sent>714157705</Sent>
<Recv>28808934</Recv>
<Day dt="040520 21:50">
<Sent>351683</Sent>
<Recv>16486335</Recv>
</Day>
<Day dt="040520 21:55">
<Sent>18329172</Sent>
<Recv>12322599</Recv>
</Day>
<Day dt="040520 22:00">
<Sent>28850732</Sent>
<Recv>0</Recv>
</Day>
<Day dt="040520 22:05">
<Sent>34301727</Sent>
<Recv>0</Recv>
</Day>
<Day dt="040520 22:10">
<Sent>35799925</Sent>
<Recv>0</Recv>
</Day>
<Day dt="040520 22:15">
<Sent>21824471</Sent>
<Recv>0</Recv>
</Day>
<Day dt="040520 22:20">
<Sent>6844315</Sent>
<Recv>0</Recv>
</Day>
<Day dt="040520 22:25">
<Sent>38391794</Sent>
<Recv>0</Recv>
</Day>
<Day dt="040520 22:30">
<Sent>28352926</Sent>
<Recv>0</Recv>
</Day>
<Day dt="040520 22:35">
<Sent>34525541</Sent>
<Recv>0</Recv>
</Day>
<Day dt="040520 22:40">
<Sent>35326398</Sent>
<Recv>0</Recv>
</Day>
<Day dt="040520 22:45">
<Sent>34764015</Sent>
<Recv>0</Recv>
</Day>
<Day dt="040520 22:50">
<Sent>28495370</Sent>
<Recv>0</Recv>
</Day>
<Day dt="040520 22:55">
<Sent>28302156</Sent>
<Recv>0</Recv>
</Day>
<Day dt="040520 23:00">
<Sent>28328661</Sent>
<Recv>0</Recv>
</Day>
<Day dt="040520 23:05">
<Sent>28060084</Sent>
<Recv>0</Recv>
</Day>
<Day dt="040520 23:10">
<Sent>28366898</Sent>
<Recv>0</Recv>

</Day>
<Day dt="040520 23:55">
<Sent>30551351</Sent>
<Recv>0</Recv>
</Day>
</Filter>
<LastModified>May, 20 2004 23:59:45</LastModified>
</TrafficReport>




"martin" a écrit dans le message de
news:40b06ccf$0$25190$
Bonjour,

Je cherche à récupérer certaine donnée d'un fichier xml en Bash.
Existe t'il un parseur ?
Si non, comment puis je faire ?

Par avance merci

Martin


Avatar
Unknown
Meme si cela n'est pas forcement utile, (vu l'application) que pensez vous
de'utiliser Python pour faire ceci.
Je n'ai pas trouver d'exemple (code source)


Dis nous aussi de quels outils tu peux te servir, awk, perl, C, java,
python, ... grosso modo tu auras le même résultat tout dépend de ce que
tu {veux,peux,sais} utiliser.

Avatar
martin
Je peux dire de koi je ne souhaite pas me servir :
perl c java

La question que je me pose :
Dois je recourir à awk afin de tout ecrire en bash
mais à ce moment cela reviendrait à faire du bricolage.

Ne serais pas interessant d'investir du temps sur Python, qui semble
proposer pas mal d'avantage. La machine sur lequel tourne les script est un
serveur sous Gnu/ Linux Debian.

A terme, une fois bien le langage python "maitrise", cela me permettrait
d'oublier bash pour ne recourir k'a python.
K'en pensez vous ? Est ce judicieux ? Inaproprié ?

Merci



"Unknown" a écrit dans le message de
news:
Meme si cela n'est pas forcement utile, (vu l'application) que pensez
vous


de'utiliser Python pour faire ceci.
Je n'ai pas trouver d'exemple (code source)


Dis nous aussi de quels outils tu peux te servir, awk, perl, C, java,
python, ... grosso modo tu auras le même résultat tout dépend de ce que
tu {veux,peux,sais} utiliser.



Avatar
Unknown
Je peux dire de koi je ne souhaite pas me servir :
perl c java


ok

La question que je me pose :
Dois je recourir à awk afin de tout ecrire en bash
mais à ce moment cela reviendrait à faire du bricolage.


awk n'est pas du bash, awk est au meme niveau que python, perl, ...
par contre oui tu as raison awk serait du bricolage dans la mesure où tu
feras du substring sauvage et non du parsing.

Ne serais pas interessant d'investir du temps sur Python, qui semble
proposer pas mal d'avantage. La machine sur lequel tourne les script est un
serveur sous Gnu/ Linux Debian.


tu as bien raison en plus il doit bien y avoir un parser XML

A terme, une fois bien le langage python "maitrise", cela me permettrait
d'oublier bash pour ne recourir k'a python.


non, des fois ca va plus vite de faire un petit script ne serait que pour
suveiller des processus, l'espace disque, les users connecté, brefs dès
que tu as besoin de faire appel à des commandes unix, a moins de tout
réécrire en python.

K'en pensez vous ? Est ce judicieux ? Inaproprié ?


a chaque solution son outil (meme si c'est un unix derrière) on ne peut
etre catégéorique, a cela s'ajoute tes envies. Certains outils sont
moins appropriés que d'autre pour certaines choses mais si ca t'éclate ...

Avatar
gcvaryyv
Dans l'article
écrivait :

on peut pas ouvrir de fichier en bash pure.. enfin j'ai pas trouver
comment faire


while read ligne
do
echo $ligne
done < MON_FICHIER



Il ne manquerait pas quelques ";" ????


Avatar
Unknown
Il ne manquerait pas quelques ";" ????
je ne sais pas dans quel shell tu codes mais en sh, ksh et bash nul besoin

de ; en fin de ligne

Avatar
Stephane Louise
martin wrote:
Bonjour,

Je cherche à récupérer certaine donnée d'un fichier xml en Bash.
Existe t'il un parseur ?
Si non, comment puis je faire ?


Personnellement, lorsque je cherche à extraire des données d'un fichier
xml pour faire une transformation vers du texte et/ou un autre fichier
xml, j'utilise un fichier xslt et l'utiltaire xsltproc de gnome pour
effectuer la transformation. Cela nécessite d'avoir une idée de xslt ou
avoir envie de s'y mettre, cela dit.

mata ne
--
luigi

1 2 3 4