name linea expressions xpath xmllint

linea - xpath predicate



OpciĆ³n desconocida xmllint ''--xpath'' (4)

He visto esta sintaxis en varios lugares (por ejemplo, here ):

xmllint --xpath ''/plist/array/string/text()'' tmp.xml , que se utiliza para consultar un nodo XML en particular mediante un selector xpath. Sin embargo, Unknown option --xpath el error Unknown option --xpath cuando intento ejecutar esto en mi máquina (mac os x snow leopard).

Mirando más de cerca la página del manual de xmllint, no veo la opción --xpath documentada ...

¿Estoy perdiendo totalmente algo aquí?


Ah, sí, debe haber sido un problema con una versión desactualizada de libxml2 .

La actualización de libxml2 (a v2.7.8 ) a través de macports parece haber solucionado el problema.


Para algunas personas la actualización no es una opción. Tienes que trabajar con la versión dada, que es instalada por algún otro equipo y vas con ella.

Puedes probar a través de --shell:

xmllint --shell tmp.xml << EOF ''/plist/array/string/text()'' EOF


Si desea manipular archivos plist desde la línea de comandos en una Mac, use PlistBuddy .

Por ejemplo, puedes hacer este tipo de cosas en un script de shell:

BUNDLE_ID=`/usr/libexec/PlistBuddy -c ''Print :CFBundleIdentifier'' Info.plist` echo $BUNDLE_ID

Es muy poderoso, puede agregar / eliminar elementos en arrays y diccionarios, buscar valores clave o indexados, copiar / fusionar / importar otros archivos, etc. Consulte /usr/libexec/PlistBuddy -h para obtener información completa.


xmllint --shell tmp.xml <<<''xpath /plist/array/string/text()''

Si necesitas hacer xmllint para leer stdin:

cat /tmp/tmp.xml | xmllint --shell <(cat) <<<''xpath /plist/array/string/text()''