如何通过 sed 编辑复杂的 xml 文件
how do edit complex xml file by sed
这是 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。
如何控制仅编辑名称="parameter2"?
的值
谢谢你!
编辑: 由于 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
要对 xml 文件本身进行就地更新,请使用以下内容。
xmlstarlet ed -L -u "/test.file/set/value" -v "false" Input_file.xml
这是 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。 如何控制仅编辑名称="parameter2"?
的值谢谢你!
编辑: 由于 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
要对 xml 文件本身进行就地更新,请使用以下内容。
xmlstarlet ed -L -u "/test.file/set/value" -v "false" Input_file.xml