Groovy: правильный синтаксис для XMLSlurper для поиска элементов с заданным атрибутом - PullRequest
9 голосов
/ 19 сентября 2008

Учитывая HTML-файл со структурой html -> body -> связка div , что является правильным оператором groovy для поиска всех div с атрибутом непустых тегов?

Не работает следующее:

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

потому что он находит все узлы.

1 Ответ

18 голосов
/ 19 сентября 2008

Попробуйте следующее (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 { it.@tags.text()}.each { div ->
    println div.text()
}

Это выводит:

test1
test4
...