嗨,我有一个类似的XML文件
<Parameter name="man" override="false" value="false"/>
<Parameter name="vendor" override="false" value="serve"/>
<Parameter name="buzz" override="false" value=""/>
我需要添加一行像这样的
<Parameter name="dentist" override="false" value="sunday"/>
我需要得到这样的文件和空间符号
<Parameter name="man" override="false" value="false"/>
<Parameter name="vendor" override="false" value="serve"/>
<Parameter name="dentist" override="false" value="sunday"/>
<Parameter name="buzz" override="false" value=""/>
提前感谢
使用xmlstarlet
,命令行XML文件操作的瑞士军刀(以及基于您的示例的实际XML文件(:
$ xmlstarlet ed -a '//Parameter[2]' -t elem -n Parameter
-i '//Parameter[3]' -t attr -n name -v dentist
-i '//Parameter[3]' -t attr -n override -v false
-i '//Parameter[3]' -t attr -n value -v sunday input.xml
<?xml version="1.0"?>
<Parameters>
<Parameter name="man" override="false" value="false"/>
<Parameter name="vendor" override="false" value="serve"/>
<Parameter name="dentist" override="false" value="sunday"/>
<Parameter name="buzz" override="false" value=""/>
</Parameters>
首先在第二个节点之后添加一个新的Parameter
节点(使其成为新的第三个节点(,然后用属性填充它。