Existe um programa compatível com tubos que leva:
- Um documento XML
- Uma expressão XPath indicando o(s) elemento(s) de destino
- A substituição desejada
? Algo parecido sed
, mas com conhecimento sobre XML (elementos, espaços em branco, etc.)?
Responder1
XMLStarlet pode editar XML e fica feliz em viver em um cano.
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 é um conjunto de utilitários de linha de comando (kit de ferramentas) para consultar, transformar, validar e editar documentos e arquivos XML usando um conjunto simples de comandos shell de maneira semelhante a como é feito com UNIX grep, sed, awk, diff, comandos patch, join, etc.
XMLStarlet é um software livre de código aberto lançado sob umaLicença MITque permite o uso e distribuição gratuitos para fins comerciais e não comerciais
Responder2
Se você não se importa em usar/aprender XSLT, existe oxsltprocutilitário que pode fazer isso.
Responder3
XMLSH tem um comandofixoque pode se adequar aos seus parâmetros.
fixoavalia uma expressão xpath e edita cada nó correspondente gerando o documento resultante