首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Groovy xmlSlurper用于删除空字段

Groovy xmlSlurper用于删除空字段
EN

Stack Overflow用户
提问于 2018-02-27 01:47:03
回答 1查看 687关注 0票数 0

我有一个使用XMLParser删除空域的代码,我想知道你是否可以帮助我有一个使用xmlSlurper的相同版本。

代码如下:

代码语言:javascript
复制
File doc = new File("C:/Temp/input.xml")

def text = new String(doc.bytes, "UTF-8")

def xml = new XmlParser().parseText( text )

xml.depthFirst().each { 
  if( it.children().size() == 0 ) {
    it.parent().remove( it )
  }
}

def file = new File("C:/Temp/out/test.xml")   
def xmltext = XmlUtil.serialize(xml)
file.write(xmltext,'UTF-8')

到目前为止,我最好的猜测是使用XMLSlurper,但它不起作用:

代码语言:javascript
复制
def xmlSl = new XmlSlurper().parseText(text)
xmlSl.depthFirst().each { 
  if( it.children().size() == 0 ) {
    it.parent().replaceNode { }
  }
}


def fileSl = new File("C:/Temp/out/testSl.xml")   
def xmltextSl = XmlUtil.serialize(xmlSl)
file.write(xmltextSl,'UTF-8')
println xmltextSl
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-27 15:33:27

你需要在空节点上调用replace node,而不是在它的父节点上调用它:

代码语言:javascript
复制
xmlSl.depthFirst().each { 
  if(!it.text()){
     it.replaceNode{}
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48994201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档