我使用xmlstarlet是新的。我想知道如何使用XMLSTARLET更改XML节点的值。
我尝试了一些东西。XMLSTARLET ED -INPLACE -U'/file_input/uri''字符串(" s3://my_source")'template.xml> output.xml
不起作用。
我的预期输出为 s3://my_source 和 s3://mydestination 。我想更改 source_path 和 destinaty_path node。
<?xml version="1.0" encoding="UTF-8"?>
<job version="2.10.8">
<input>
<deblock_enable>Auto</deblock_enable>
<deblock_strength>0</deblock_strength>
<no_psi>false</no_psi>
<order>1</order>
<timecode_source>zerobased</timecode_source>
<file_input>
<certificate_file nil="true"/>
<password>upass</password>
<uri>source_path</uri>
<username>uname</username>
</file_input>
<file_group_settings>
<rollover_interval nil="true"/>
<destination>
<password>upass</password>
<username>uname</username>
<uri>destination_path</uri>
</destination>
</file_group_settings>
</input>
</job>
非常感谢
with xmlstarlet:
xmlstarlet edit
--update "//job/input/file_input/uri"
--value 's3://my_source'
--update "//job/input/file_group_settings/destination/uri"
--value 's3://mydestination' file.xml
如果要编辑file.xml Inploph,请添加选项-L
。
请参阅:xmlstarlet edit --help