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()''