Gibt es ein rohrfreundliches Programm, das Folgendes übernimmt:
- Ein XML-Dokument
- Ein XPath-Ausdruck, der die Zielelemente angibt
- Der gewünschte Ersatz
? Etwas Ähnliches sed
, aber mit Kenntnissen in XML (Elemente, Leerzeichen usw.)?
Antwort1
XMLStarlet kann XML bearbeiten und lebt gerne in einer Pipe.
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 ist eine Reihe von Befehlszeilenprogrammen (Toolkit) zum Abfragen, Transformieren, Validieren und Bearbeiten von XML-Dokumenten und -Dateien unter Verwendung eines einfachen Satzes von Shell-Befehlen auf eine Weise, die den UNIX-Befehlen grep, sed, awk, diff, patch, join usw. ähnelt.
XMLStarlet ist eine kostenlose Open-Source-Software, die unterMIT-Lizenzdie die kostenlose Nutzung und Verbreitung sowohl für kommerzielle als auch nichtkommerzielle Zwecke ermöglicht
Antwort2
Wenn es Ihnen nichts ausmacht, XSLT zu verwenden/zu lernen, gibt es diexsltprocDienstprogramm, das dies erreichen kann.
Antwort3
XMLSH hat einen Befehlxeddas könnte Ihren Parametern entsprechen.
xedwertet einen XPath-Ausdruck aus und bearbeitet jeden passenden Knoten und gibt das Ergebnisdokument aus