如何使用xmlstarlet在另一个下插入一个新元素?

前端之家收集整理的这篇文章主要介绍了如何使用xmlstarlet在另一个下插入一个新元素?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. $ vim test.xml
  2.  
  3. <?xml version="1.0" encoding="UTF-8" ?>
  4. <config>
  5. </config>
  6. $ xmlstarlet ed -i "/config" -t elem -n "sub" -v "" test.xml
  7. <?xml version="1.0" encoding="UTF-8"?>
  8. <sub></sub>
  9. <config>
  10. </config>

但是我想要sub成为一个配置的孩子。如何改变xpath parameter of -i

奖金:
是否可以直接插入一个属性,甚至把它设置为一个值?
就像是:

  1. $ xmlstarlet ed -i "/config" -t elem -n "sub" -v "" -a attr -n "class" -v "com.foo" test.xml
使用-s(或–subnode)而不是-i。关于奖金,您不能直接插入具有属性的元素,但是由于每次编辑操作都按顺序执行,要插入元素,然后添加一个属性
  1. > xml ed -s /config -t elem -n sub -v "" -i /config/sub -t attr -n class -v com.foo test.xml
  2. <?xml version="1.0" encoding="UTF-8"?>
  3. <config>
  4. <sub class="com.foo"></sub></config>

猜你在找的XML相关文章