使用 xmlstarlet 追加具有多个属性的元素

Append element with more than one attribute using xmlstarlet

假设我有以下 xml 文件内容:

<Context>
   <Parameter name="n1" value="v1" override="false"/>
   <Parameter name="n2" value="v2" override="false"/>
</Context>

所以在我的例子中,我想追加具有相同属性的新元素 Parameter :

<Context>
   <Parameter name="n1" value="v1" override="false"/>
   <Parameter name="n2" value="v2" override="false"/>
   <Parameter name="n3" value="v3" override="true"/>
</Context>

感谢帮助

有点繁琐,但是可以这样做:

xmlstarlet ed --subnode "//Context" --type elem -n Parameter \
--insert  "// Context //Parameter[3]"  --type attr --name "name" --value "n3" \
--insert  "// Context //Parameter[3]" --type attr --name "value3" --value "v3" \
--insert  "// Context //Parameter[3]" --type attr --name "override" --value "false"\
myfile.xml

输出应该是您要查找的内容。

要在 <Context> 之前插入新元素,请使用

xmlstarlet ed  -i "//Context" --type elem -n Parameter myfile.xml