使用 xmlstarlet 编辑 XML 中的值
Editing Values in XML using xmlstarlet
我是 xmlstarlet 的新手,因为我没有使用 bash。
我尝试一次替换 XML 文件中的许多值。
我试过的是:
xmlstarlet ed -L -u "/items/item/property[@name='Stacknumber']/@value"
-v '30000' items.xml
<items>
<item name="foodEggBoiled">
<property name="Stacknumber" value="50"/> <!-- This i want to change-->
</item>
<item name="foodEggRaw">
<property name="Stacknumber" value="1"/> <!-- and this not-->
</item>
</items>
我要更改的值是
<property name="Stacknumber" value="50"/>
我想将 属性 Stacknumber 中值大于 1 的每个值更改为 30000,例如
<property name="Stacknumber" value="30000"/>
但我不知道如何 select 仅使用值大于 1 的属性。
有效XML:
xmlstarlet edit --omit-decl --update '//property[@name="Stacknumber"][@value>"1"]/@value' -v '30000' file.xml
如果要就地编辑文件,请添加选项 -L。
输出:
<items>
<item name="foodEggBoiled">
<property name="Stacknumber" value="30000"/>
<!-- This i want to change-->
</item>
<item name="foodEggRaw">
<property name="Stacknumber" value="1"/>
<!-- and this not-->
</item>
</items>
我是 xmlstarlet 的新手,因为我没有使用 bash。
我尝试一次替换 XML 文件中的许多值。
我试过的是:
xmlstarlet ed -L -u "/items/item/property[@name='Stacknumber']/@value" -v '30000' items.xml
<items>
<item name="foodEggBoiled">
<property name="Stacknumber" value="50"/> <!-- This i want to change-->
</item>
<item name="foodEggRaw">
<property name="Stacknumber" value="1"/> <!-- and this not-->
</item>
</items>
我要更改的值是
<property name="Stacknumber" value="50"/>
我想将 属性 Stacknumber 中值大于 1 的每个值更改为 30000,例如
<property name="Stacknumber" value="30000"/>
但我不知道如何 select 仅使用值大于 1 的属性。
有效XML:
xmlstarlet edit --omit-decl --update '//property[@name="Stacknumber"][@value>"1"]/@value' -v '30000' file.xml
如果要就地编辑文件,请添加选项 -L。
输出:
<items>
<item name="foodEggBoiled">
<property name="Stacknumber" value="30000"/>
<!-- This i want to change-->
</item>
<item name="foodEggRaw">
<property name="Stacknumber" value="1"/>
<!-- and this not-->
</item>
</items>