正在使用 xmlstarlet 更新 XML 文件
Updating XML file using xmlstartlet
我有以下XML结构
<config>
<keys>
<add key="Name" value="myApp" />
<add key="BuildVersion" value="1" />
...
</keys>
</config>
我想匹配与键 "BuildVersion" 对应的元素并将其值更新为“2”。这就是我的选择,
xmlstarlet ed -u "//config/keys/add[@key='BuildVersion']" -v '2' App.xml
但是结果如下
<add key="BuildVersion" value="1">2</app>
我更喜欢下面的输出
<add key="BuildVersion" value="2" />
只需将 /@value
添加到您的 XPath 表达式中,如下所示:
xmlstarlet ed -u "//config/keys/add[@key='BuildVersion']/@value" --value "2" App.xml
以上打印:
<?xml version="1.0"?>
<config>
<keys>
<add key="Name" value="myApp"/>
<add key="BuildVersion" value="2"/>
</keys>
</config>
我有以下XML结构
<config>
<keys>
<add key="Name" value="myApp" />
<add key="BuildVersion" value="1" />
...
</keys>
</config>
我想匹配与键 "BuildVersion" 对应的元素并将其值更新为“2”。这就是我的选择,
xmlstarlet ed -u "//config/keys/add[@key='BuildVersion']" -v '2' App.xml
但是结果如下
<add key="BuildVersion" value="1">2</app>
我更喜欢下面的输出
<add key="BuildVersion" value="2" />
只需将 /@value
添加到您的 XPath 表达式中,如下所示:
xmlstarlet ed -u "//config/keys/add[@key='BuildVersion']/@value" --value "2" App.xml
以上打印:
<?xml version="1.0"?>
<config>
<keys>
<add key="Name" value="myApp"/>
<add key="BuildVersion" value="2"/>
</keys>
</config>