Ich möchte über viele XML-Dateien iterieren, um veraltete Konfigurationseinträge zu korrigieren, indem ich alle Übereinstimmungen abrufe und dann in einem zweiten Schritt jeden Eintrag durch aktualisierte Zeichenfolgen (in diesem Fall mehrzeilige Skripte) ersetze. Ich weiß, wie man Elementwerte mit XPath abfragt/auswählt und druckt, xmlstarlet
z. B. mit
xmlstarlet sel -t -v '//hudson.tasks.Shell/command' $xml
oder wie man alle XPaths auflistet mit
xmlstarlet el -a $xml
Gibt es eine Möglichkeit, eine Liste gültigerXPathsAusdrücke für jede Übereinstimmung, um diesen XPath-String später zu verwenden, um den Wert im zweiten Schritt zu aktualisieren? zB
maven2-moduleset/postbuilders/hudson.tasks.Shell[1]/command
maven2-moduleset/postbuilders/hudson.tasks.Shell[2]/command
Die einzige Lösung, die ich bisher gefunden habe, besteht darin, die Pfade aus el
der Ausgabe zu zählen und sie dann nach Index zu durchlaufen (mit Bash).