Bonjour à tous,
Je suis débutante en linux et xml donc je suis désolée si mes questions sont peut-être un peu bêtes... Seulement je tourne depuis plusieurs jours en faisant des tests et en recherchant des questions similaires sur les forums sans trouver grand chose de compréhensible...
Je travaille actuellement sur un script bash qui cherche, entre autre, à stocker dans des variables quelques valeurs d'un fichier XML. Le script utilise la commande xmllint qui répond parfaitement à nos attentes pour les cas simples. Par exemple :
Néanmoins, je n'arrive pas à utiliser la même fonction lorsque des namespaces sont nécessaires. J'essaye pour cela d'utiliser l'option dtdattr de la commande xmllint mais je n'arrive pas à trouver comment la configurer (même avec un seul préfixe, alors qu'il faudra que je travaille avec deux préfixes au minimum). Je tente de la configurer comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 root@geo:~# titre=$(xmllint --xpath "/metadata/dataIdInfo/idCitation/resTitle/text()" /home/geo/owncloud/geosync_data_tests/clement_data/GPS/Point_ge.shp.xml) root@geo:~# echo $titre Fiche des Points GPS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 root@geo:~# xmllint --dtdattr "gmd=http://www.isotc211.org/2005/gmd/gmd.xsd" --xpath "/gmd:MD_Metadata/gmd:characterSet/gmd:MD_CharacterSetCode" /home/geo/owncloud/baies_metadata/baies_metadata.shp.xml warning: failed to load external entity "gmd=http://www.isotc211.org/2005/gmd/gmd.xsd" XPath error : Undefined namespace prefix xmlXPathEval: evaluation failed XPath evaluation failure
Auriez-vous une piste pour m'aider à avancer ?
Merci d'avance !
Partager