¿Existe un programa compatible con tuberías que requiera:
- Un documento XML
- Una expresión XPath que indica los elementos de destino.
- El reemplazo deseado
? ¿Algo parecido sed
pero con conocimientos sobre XML (elementos, espacios en blanco, etc.)?
Respuesta1
XMLStarlet puede editar XML y está feliz de vivir en una tubería.
xmlstarlet edit \
-N "b=http://www.springframework.org/schema/beans" \
-u '/b:beans/b:bean[@id="stun1"]/b:constructor-arg/@value' \
-v "stun.example.com \
-L servers.xml
cat servers.xml | xmlstarlet edit -u <xpath> -v <value>
XMLStarlet es un conjunto de utilidades de línea de comandos (kit de herramientas) para consultar, transformar, validar y editar documentos y archivos XML utilizando un conjunto simple de comandos de shell de manera similar a cómo se hace con UNIX grep, sed, awk, diff, comandos de parche, unión, etc.
XMLStarlet es un software gratuito de código abierto lanzado bajo unaLicencia MITque permite el uso y distribución gratuitos tanto para fines comerciales como no comerciales.
Respuesta2
Si no le importa usar/aprender XSLT, existe laxsltprocutilidad que puede lograr esto.
Respuesta3
XMLSH tiene un comandofijoque podría ajustarse a sus parámetros.
fijoevalúa una expresión xpath y edita cada nodo coincidente generando el documento de resultados