我试图将一个带有嵌套 -> 的<Product>
元素添加到<Products>
列表中。
从此 XML 中:
<Products>
<Product>
<Name>
product1
</Name>
</Product>
</Products>
想像这样完成:
<Products>
<Product>
<Name>
product1
</Name>
</Product>
<Product>
<Name>
product2
</Name>
</Product>
</Products>
这是我的片段尝试:
xmlstarlet ed --inplace -s /Products -t elem -n "Product" -v ""
-s //Product -t elem -n "name" -v "product2"
Settings.xml
问题是每个当前<Product>
都会多获得 1 个<Name>
元素:
<Products>
<Product>
<name>
product1
</name>
<name>
product2
</name>
</Product>
<Product>
<name>
product2
</name>
</Product>
<Products>
试试这样
xmlstarlet ed --subnode "//Products" --type elem -n Product
--subnode "//Products/Product[last()]" --type elem -n n
"Name" --value "product2" Settings.xml
看看它是否有效。