如何更改 XML 文件中的值

如何更改 XML 文件中的值

我有一个如下所示的 XML 文件。我想使用如下的 shell 脚本更改每个参数名称的默认值处的值:

其中参数名称 = 协议且默认值 = tcp,
其中参数名称 = 端口且默认值 = 7223,
其中参数名称 = 用户名且默认值 = test,

例子:

<task-arguments>
    <argument name="protocol" is-required="false" default-value="ssl"/>
    <argument name="port" is-required="true" default-value="7222"/>
    <argument name="username" is-required="true" default-value="admin"/>
</task-arguments>

答案1

使用 xmlstarlet:

xmlstarlet ed --inplace -u '/task-arguments/argument[@name="protocol"]/@default-value' -x 'string("tcp")' file.xml
xmlstarlet ed --inplace -u '/task-arguments/argument[@name="port"]/@default-value' -x 'string("7223")' file.xml
xmlstarlet ed --inplace -u '/task-arguments/argument[@name="username"]/@default-value' -x 'string("test")' file.xml

相关内容