Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1571 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Exploitation d'un fichier xml

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Exploitation d'un fichier xml

n°1323990
o'gure
Modérateur
Multi grognon de B_L
Posté le 06-11-2012 à 14:35:03  profilanswer
 

bonjour :o
Aujourd'hui, c'est quoi le plus simple pour utiliser un fichier xml dans un script shell sans sortir une usine à gaz ?

 

En résumé, j'ai un fichier xml qui est de la sorte :

<blabla>
  <entry>
    <id>id_1</id>
    <checksum>243456abe</checksum>
    <url>https://balblabla.org/toto.gz</url>
  </entry>
  <entry>
    <id>id_2</id>
    <checksum>243456abef</checksum>
    <url>https://balblabla.org/tata.gz</url>
  </entry>
</blabla>

 

Je voudrais extraire les url, les télécharger puis vérifier le checksum.
J'imagine qu'il y a des parser qui permettraient de faire ça facilement, non ?

 

Pour l'instant, je regarde xmlstarlet et les queries xpath, ça s'intègre pas trop mal. Mais y-a-t-il mieux ?

Message cité 1 fois
Message édité par o'gure le 06-11-2012 à 15:03:05
mood
Publicité
Posté le 06-11-2012 à 14:35:03  profilanswer
 

n°1323991
escagasse
Posté le 06-11-2012 à 15:03:49  profilanswer
 

grep + sed :D
bon, ok, c'est du bricolage :D

Message cité 1 fois
Message édité par escagasse le 06-11-2012 à 15:04:06

---------------
noob :s
n°1323992
o'gure
Modérateur
Multi grognon de B_L
Posté le 06-11-2012 à 15:07:11  profilanswer
 

escagasse a écrit :

grep + sed :D
bon, ok, c'est du bricolage :D


à la rigueur je préfère awk si je dois bricoler :o

n°1323993
escagasse
Posté le 06-11-2012 à 15:08:48  profilanswer
 

perso si je veux bricoler proprement j'utilise python  [:icon3]


---------------
noob :s
n°1323994
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 06-11-2012 à 15:10:22  profilanswer
 

xmlstarlet ?


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1323996
o'gure
Modérateur
Multi grognon de B_L
Posté le 06-11-2012 à 15:17:04  profilanswer
 


Oui ?

Spoiler :

toi, t'as gardé l'onglet ouvert longtemps et raté mon edit ? [:cupra]

Message cité 1 fois
Message édité par o'gure le 06-11-2012 à 15:17:15
n°1323997
o'gure
Modérateur
Multi grognon de B_L
Posté le 06-11-2012 à 15:20:59  profilanswer
 

Là je m'en sort bien avec  un script de la sorte, plus qu'à le fignoler

Code :
  1. FILE=manifest.xml
  2. XML="xmlstarlet sel -t -v"
  3. function download_and_check {
  4. url_query="//blabla/entry[id='$1']/url"
  5. url=$($XML $url_query $FILE)
  6. checksum_query="//blabla/entry[id='$1']/checksum"
  7. checksum=$($XML $checksum_query $FILE)
  8. wget $url -O $1 -o /dev/null
  9. echo $checksum
  10. /usr/bin/md5sum $1
  11. }
  12. download_and_check application_groups.xml.gz
  13. download_and_check applications.xml.gz
  14. download_and_check heuristics.bin.gz


Message édité par o'gure le 06-11-2012 à 15:21:07
n°1323998
el_barbone
too old for this shit ...
Posté le 06-11-2012 à 15:25:31  profilanswer
 

o'gure a écrit :


à la rigueur je préfère awk si je dois bricoler :o


+1 :o


---------------
En théorie, la théorie et la pratique sont identiques, en pratique, non.
n°1323999
el_barbone
too old for this shit ...
Posté le 06-11-2012 à 15:25:58  profilanswer
 

mais j'aime pas scripter  [:schtroumpfgrognon]


---------------
En théorie, la théorie et la pratique sont identiques, en pratique, non.
n°1324000
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 06-11-2012 à 15:28:00  profilanswer
 

o'gure a écrit :


Oui ?

Spoiler :

toi, t'as gardé l'onglet ouvert longtemps et raté mon edit ? [:cupra]



 
j'ai un métier moi :o


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
mood
Publicité
Posté le 06-11-2012 à 15:28:00  profilanswer
 

n°1324001
o'gure
Modérateur
Multi grognon de B_L
Posté le 06-11-2012 à 15:29:46  profilanswer
 

black_lord a écrit :


 
j'ai un métier moi :o


Genre...
Ose me dire que tu n'as pas de bots qui font le taf pour toi :o

n°1324002
o'gure
Modérateur
Multi grognon de B_L
Posté le 06-11-2012 à 15:30:08  profilanswer
 

Mais bon, si vous avez mieux, je suis preneur :o

n°1324003
el_barbone
too old for this shit ...
Posté le 06-11-2012 à 15:39:18  profilanswer
 

o'gure a écrit :


Genre...
Ose me dire que tu n'as pas de bots qui font le taf pour toi :o


moi, non :o
 

Spoiler :

c'est des esclaves [:hahaguy]


---------------
En théorie, la théorie et la pratique sont identiques, en pratique, non.
n°1324004
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 06-11-2012 à 15:45:53  profilanswer
 

o'gure a écrit :

Mais bon, si vous avez mieux, je suis preneur :o


http://hfr-rehost.net/www.tshirthell.com/shirts/products/a974/a974.gif?v101512


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1324006
memaster
ki a volé mon 62?
Posté le 06-11-2012 à 16:00:47  profilanswer
 

o'gure a écrit :

Mais bon, si vous avez mieux, je suis preneur :o


un(e) stagiaire :o  :??:


---------------
ma conduite intérieure .:R | memaster pilote officiel de la HFR Badoit-Auchan F1 Team | zéro tracas, zéro blabla MMa.ster
n°1324008
o'gure
Modérateur
Multi grognon de B_L
Posté le 06-11-2012 à 16:06:57  profilanswer
 

Bon, c'est pas blabla :o
 
Si je me base sur cet exemple

o'gure a écrit :


<blabla>
  <entry>
    <id>id_1</id>
    <checksum>243456abe</checksum>
    <url>https://balblabla.org/toto.gz</url>
  </entry>
  <entry>
    <id>id_2</id>
    <checksum>243456abef</checksum>
    <url>https://balblabla.org/tata.gz</url>
  </entry>
</blabla>




Je ne trouve pas d'invocation avec xmlstarlet pour changer par exemple l'url de id_1. Par exemple je voudrais à l'issue de l'invocation avoir:

<blabla>
  <entry>
    <id>id_1</id>
    <checksum>243456abe</checksum>
    <url>file://var/truc/bidule/toto.gz</url>
  </entry>
  <entry>
    <id>id_2</id>
    <checksum>243456abef</checksum>
    <url>https://balblabla.org/tata.gz</url>
  </entry>
</blabla>


une idée ?

n°1324010
o'gure
Modérateur
Multi grognon de B_L
Posté le 06-11-2012 à 16:14:17  profilanswer
 

Ah si, c'est tombé en marche

n°1324011
el_barbone
too old for this shit ...
Posté le 06-11-2012 à 16:19:56  profilanswer
 

o'gure a écrit :

Ah si, c'est tombé en marche


[:bien]


---------------
En théorie, la théorie et la pratique sont identiques, en pratique, non.
n°1324256
Nukolau
Posté le 09-11-2012 à 17:04:44  profilanswer
 

Sinon awk parse super bien ce genre de chose :

Code :
  1. awk -F'[<>]' '$2=="url" {print $3}' fichier.xml


 
plus qu'a boucler sur les URL trouvées/


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Exploitation d'un fichier xml

 

Sujets relatifs
Comment supprimer le retour à la ligne final d'un fichierGraver sur DVD simple couche un film HD de 7Go : comment faire ?
fichier config sambaSystème de fichier en mémoire
Ecrire dans un fichier avec guillemetsPartage de fichier en ligne
[DEBIAN] Samba Transfert de fichier à 10Ko/sec (!)Triple boot et système de fichier
exploitation fichier .PNM 
Plus de sujets relatifs à : Exploitation d'un fichier xml


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR