加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何使用Groovy的XmlSlurper检查元素的存在?

发布时间:2020-12-14 16:38:56 所属栏目:大数据 来源:网络整理
导读:我试图确定一个XML元素是否存在与Groovy的XmlSlurper。有没有办法做到这一点?例如: foo bar//foo 如何检查bar元素是否存在? 解决方法 这个API有点棘手,但我认为有一些更好的方法来寻找孩子。当你要求“xml.bar”(存在)或“xml.quux”不是,是一个 groovy
我试图确定一个XML元素是否存在与Groovy的XmlSlurper。有没有办法做到这一点?例如:

<foo>
  <bar/>
</foo>

如何检查bar元素是否存在?

解决方法

这个API有点棘手,但我认为有一些更好的方法来寻找孩子。当你要求“xml.bar”(存在)或“xml.quux”不是,是一个 groovy.util.slurpersupport.NodeChildren对象,你得到什么。基本上是符合您要求的条件的节点集合。

查看特定节点是否存在的一种方法是检查NodeChildren的大小是否为预期大小:

def text = "<foo><bar/></foo>"
def xml = new XmlSlurper().parseText(text)
assert 1 == xml.bar.size()
assert 0 == xml.quux.size()

另一种方法是使用find方法,并查看返回的节点的名称(不幸的是总是返回的东西),是你期望的:

def text = "<foo><bar/></foo>"
def xml = new XmlSlurper().parseText(text)
assert ("bar" == xml.children().find( {it.name() == "bar"})?.name())
assert ("quux" != xml.children().find( {it.name() == "quux"})?.name())

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读