如何使用 XmlSlurper 删除 Groovy 中的元素?

Eld*_*rry 5 xml groovy xmlslurper

例如,如何以编程方式删除所有名称为onein 的标签rootNode

def rootNode = new XmlSlurper().parseText(
    '<root><one a1="uno!"/><two>Some text!</two></root>' )
Run Code Online (Sandbox Code Playgroud)

我试过

rootNode.children().removeAll{ it.name() == 'one' }
Run Code Online (Sandbox Code Playgroud)

但它报道说:

groovy.lang.MissingMethodException: No signature of method: groovy.util.slurpersupport.NodeChildren.removeAll() is applicable for argument types: (DUMMY$_closure1_closure2) values: [DUMMY$_closure1_closure2@6c5f92d3]
Run Code Online (Sandbox Code Playgroud)

dma*_*tro 4

尝试

rootNode.one.replaceNode { }
Run Code Online (Sandbox Code Playgroud)

完成答案:

def rootNode = new XmlSlurper().parseText (
    '<root><one a1="uno!"/><two>Some text!</two></root>' 
)

rootNode.one.replaceNode { }

println groovy.xml.XmlUtil.serialize( rootNode )
Run Code Online (Sandbox Code Playgroud)