是否有一個管道友好的程序需要:
- XML 文件
- 指示目標元素的 XPath 表達式
- 所需的替代品
?類似sed
但了解 XML(元素、空格等)?
答案1
XMLStarlet 可以編輯 XML 並且很高興住在管道中。
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 是一組命令列實用程式(工具包),用於使用一組簡單的 shell 命令來查詢、轉換、驗證和編輯 XML 文件和文件,其方式類似於 UNIX grep、sed、awk、diff、 patch、 join 等指令。
XMLStarlet 是開源免費軟體,在麻省理工學院許可證允許商業和非商業免費使用和分發
答案2
如果您不介意使用/學習 XSLT,那麼可以使用xslt過程可以完成此任務的實用程式。
答案3
XMLSH 有一個命令固定這可能適合您的參數。
固定計算 xpath 表達式並編輯輸出結果文件的每個匹配節點