我有一个XML文档,我想使用XMLStarlet从所有元素(或给定类型的所有元素)中删除某种类型的所有属性及其值,而不会干扰其他属性.
例如,我想bad从任何a元素中删除所有属性:
<root>
<a href="." bad="yes"/>
<a bad=""/>
</root>
Run Code Online (Sandbox Code Playgroud)
变
<root>
<a href="."/>
<a/>
</root>
Run Code Online (Sandbox Code Playgroud)
XMLStarlet的ed子命令有一个--delete或-d选项.
bad从a元素中删除属性:
xmlstarlet ed -d '//a/@bad' input.xml
Run Code Online (Sandbox Code Playgroud)
删除所有bad属性:
xmlstarlet ed -d '//@bad' input.xml
Run Code Online (Sandbox Code Playgroud)