如何用sed编辑复杂的xml文件

时间:2018-05-30 06:25:53

标签: sed xmlstarlet

这是xml文件的结构:

  <test.file>
    <set name="parameter1" serializeAs="String">
      <value>True</value>
    </set>
    <set name="parameter2" serializeAs="String">
      <value>True</value>
    </set>
  </test.file>

我想为Parameter2编辑从True到False的值 当我使用此命令时: xmlstarlet ed -u //test.\file/set/value -v假文件名 它正在将值从True更新为False。 如何控制仅为name =“parameter2”编辑值?

谢谢你!

1 个答案:

答案 0 :(得分:0)

编辑: 由于OP要求对特定标记的值进行更改,因此根据它更改了代码。

xmlstarlet ed -u "//test.file/set[@name='parameter2']/value" -v "false"  Input_file.xml

以下xmlstarlet命令可以为您提供帮助。

xmlstarlet ed -u "/test.file/set/value" -v "false"  Input_file.xml

要将inplace update更新到xml文件本身,请使用以下命令。

xmlstarlet ed -L -u  "/test.file/set/value" -v "false"  Input_file.xml