我正在尝试使用XMLStarlet来转换它(test.xml):
<?xml version="1.0"?>
<root xmlns:doc="http://www.test.com" doc:id="hello">
<a doc:id="x"/>
<a doc:id="x"/>
<c doc:id="x">
<a doc:id="x"/>
<a doc:id="x"/>
<c doc:id="x"/>
</c>
</root>
为此(删除除doc:id
之外的所有节点上的c
属性:
<?xml version="1.0"?>
<root xmlns:doc="http://www.test.com" doc:id="hello">
<a/>
<b/>
<c doc:id="hello">
<a/>
<b/>
<c doc:id="hello"/>
</c>
</root>
我已经尝试过,但是它删除了所有的doc:id
属性:
xml ed -N doc="http://www.test.com" -d "//@doc:id[not(self::c)]" test.xml