Bonjour,
Je souhaite récupérer la valeur d'un attribut dans un élément (je connais le nom des 2) dans un fichier XML. Je ne trouve rien qui permette de la faire en shell. Avez vous des idées ?
Merci de votre aide !
WwAvE
Bonjour,
Je souhaite récupérer la valeur d'un attribut dans un élément (je connais le nom des 2) dans un fichier XML. Je ne trouve rien qui permette de la faire en shell. Avez vous des idées ?
Merci de votre aide !
WwAvE
A ma connaissance, y a rien de spécial dans les commandes standard Unix :
- soit tu fais un script shell avec du sed dans tous les sens pour récupérer l'attribut, en partant du principe que ton fichier XML a toujours la même tête, sauts de ligne inclus
- soit tu as à ta disposition un langage de programmation évolué façon PHP ou Perl qui peut faire du parse XML, et dans ce cas tu écris un script Perl ou PHP qui fait le boulot. Mais il faut que ton serveur te propose un tel langage.
Exemple d'utilisation de xmllint pour la récupération de l'attribut arg1 de l'élément Docu
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
22 $ xmllint --shell flux.xml < xpath.cmd | sed -n -e '/arg1/s/^.*="//' -e 's/"$//p' val10 val20 $ less flux.xml<?xml version="1.0"?> <xml> <Content> <Docu arg1="val10" arg2="val11"> <Corps> test 10 </Corps> </Docu> </Content> <Content> <Docu arg1="val20" arg2="val21"> <Corps> test 20</Corps> </Docu> </Content> </xml> $ less xpath.cmd cat //Docu/@arg1 bye
Solution assez basique mais qui devrait convenir![]()
Moi aussi j'ai utilisé xmllint et ça marche très bien, elle permet une utilisation interactive d'un fichier xml, et le parcourire comme un système de fichier, en plus on peut utiliser les requetes XPath .
Partager