【发布时间】:2016-11-23 10:56:12
【问题描述】:
我想删除介于值或 21 和 22 之间的节点。此外,子内容也必须删除。我尝试使用多种方法,例如 awk 或 sed。但它只会删除该行,而将内容留在后面。 从这个http://pastebin.com/9E7Cj4tP 到http://pastebin.com/A3xScxHt
【问题讨论】:
标签: xml awk sed xml-parsing
我想删除介于值或 21 和 22 之间的节点。此外,子内容也必须删除。我尝试使用多种方法,例如 awk 或 sed。但它只会删除该行,而将内容留在后面。 从这个http://pastebin.com/9E7Cj4tP 到http://pastebin.com/A3xScxHt
【问题讨论】:
标签: xml awk sed xml-parsing
不要使用sed 或awk,使用可识别XML 的工具。例如,我能够通过xsh 获得预期的输出:
open input.xml ;
rm //imgdir[@name=21 or @name=22] ;
save output.xml ;
【讨论】:
与xmlstarlet类似:
xmlstarlet ed -d '//imgdir[@name=21 or @name=22]'
【讨论】: