views:

2805

answers:

1

Given a HTML file with the structure html->body->a bunch of divs what is the correct groovy statement to find all of the divs with a non blank tags attribute?

The following is not working:

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

because it finds all the nodes.

+10  A: 

Try the following (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()
}

This outputs:

test1
test4
GerG