Je n'ai pas xpath dans ma version de xmllint, en utilisant libxml2-2.7.6-14.el6.x86_64
xml|xmllint --Shell - <<< $(echo 'cat /')
-:1: parser error : Start tag expected, '<' not found
EDIT: clustat -x
Génère un fichier XML et je veux analyser le nœud actif. Je ne pense pas qu'il existe un moyen de le faire sans xpath, j'ai donc créé un fichier xml temporaire.
/usr/sbin/clustat -x > /tmp/clustat.xml
ACTIVENODE=$(xmllint --Shell /tmp/clustat.xml <<< `echo 'cat //group/@owner'`|grep -v "^/ >"|cut -d= -f2|tr -d \")
J'ai eu un problème similaire où j'ai dû décompresser un fichier XML puis le nourrir xmllint. La clé est l'option "-" qui indique à xmllint de lire à partir de stdin.
Par exemple:
$ bzip2 -dc dierehabilitati00delagoog_meta.xml.bz2 | xmllint --format
échouerait en donnant "l'utilisation" de xmllint. L'ajout de "-" a fonctionné:
$ bzip2 -dc dierehabilitati00delagoog_meta.xml.bz2 | xmllint --format -
<?xml version="1.0"?>
<metadata>
<title>Die Rehabilitation im Strafrecht</title>
<creator>Ernst Delaquis</creator>
<mediatype>texts</mediatype>
<collection>americana</collection>
</metadata>
J'espère que cela t'aides.