Groovy:更正XMLSlurper的语法以查找具有给定属性的元素

时间:2020-03-06 14:25:05  来源:igfitidea点击:

给定一个结构为html-> body->一堆div的HTML文件,找到所有具有非空白标签属性的div的正确的groovy语句是什么?

以下内容不起作用:

def nodes = html.body.div.findAll { it.@tags != null }

因为它找到了所有节点。

解决方案

尝试以下方法(Groovy 1.5.6):

def doc = """
<html>
    <body>
        <div tags="1">test1</div>
        <div>test2</div>
        <div tags="">test3</div>
        <div tags="4">test4</div>
    </body>
</html>
"""

def html = new XmlSlurper().parseText( doc)

html.body.div.findAll { [email protected]()}.each { div ->
    println div.text()
}

输出:

test1
test4