使用 xmlstarlet 列印 XPath 進行匹配?

使用 xmlstarlet 列印 XPath 進行匹配?

我想迭代許多 xml 文件,透過獲取所有匹配項並在第二步中用更新的字串(在本例中為多行腳本)替換每個條目來修復過時的配置條目。我知道如何使用 XPath 查詢/選擇和列印元素的值,xmlstarlet例如

xmlstarlet sel -t -v '//hudson.tasks.Shell/command' $xml

或如何使用列出所有 XPath

xmlstarlet el -a $xml

有沒有辦法輸出有效列表X路徑每個符合的表達式稍後使用此 XPath 字串來更新第二步驟中的值?例如

maven2-moduleset/postbuilders/hudson.tasks.Shell[1]/command
maven2-moduleset/postbuilders/hudson.tasks.Shell[2]/command

我目前找到的唯一解決方案是計算el輸出的路徑,然後按索引循環它們(使用 bash)。

相關內容