如何删除不属于';groovy中是否有xml中的特定字段?
如果内部没有字段,是否可以删除节点 这是一个xml示例:如何删除不属于';groovy中是否有xml中的特定字段?,xml,groovy,Xml,Groovy,如果内部没有字段,是否可以删除节点 这是一个xml示例: <nodes xmlns:d="www.test.com" xmlns:m="www.type.com"> <m:node> <d:id>1</d:id> </m:node> <m:node> <d:id>2</d:id>
<nodes xmlns:d="www.test.com" xmlns:m="www.type.com">
<m:node>
<d:id>1</d:id>
</m:node>
<m:node>
<d:id>2</d:id>
<d:status>ok</d:status>
</m:node>
</nodes>
1.
2.
好啊
这是我需要的结果:
<nodes xmlns:d="www.test.com" xmlns:m="www.type.com">
<m:node>
<d:id>2</d:id>
<d:status>ok</d:status>
</m:node>
</nodes>
2.
好啊
这是我尝试的代码:
String myxml = """
<nodes xmlns:d='ww.test.com' xmlns:m='www.type.com'>
<m:node>
<d:id>1</d:id>
</m:node>
<m:node>
<d:id>2</d:id>
<d:status>ok</d:status>
</m:node>
</nodes>
"""
def xml=new XmlParser().parseText(myxml)
def nodeToDel=xml.nodes.node.find { it.'d:status'.text() == '' }
if (nodeToDel != null){
nodeToDel.print(nodeToDel);
parent = nodeToDel.parent()
parent.remove(nodeToDel)
}
String myxml=”“”
1.
2.
好啊
"""
def xml=new XmlParser().parseText(myxml)
def nodeToDel=xml.nodes.node.find{it.'d:status'.text()=''}
if(nodeToDel!=null){
nodeToDel.print(nodeToDel);
parent=nodeToDel.parent()
父级删除(节点删除)
}
你能帮我删除那个字段为空的节点吗
谢谢
BAI这应该满足您的需求:
def xml = new XmlParser(false, false).parseText(myxml)
xml.'m:node'.each {
if (!it.'d:status'?.text()) {
xml.remove(it)
}
}
new XmlNodePrinter(System.out.newPrintWriter()).with {
preserveWhitespace = true
it.print(xml)
}
它将结果xml打印到System.out。。。如果在文件或其他文件中需要它,则需要创建一个PrintWriter,并将其作为参数传递给XmlNodePrinter构造函数