static def isElementExists (String xmlStr, Closure closure){
    def xml = new XmlSlurper().parseText(xmlStr)
    def elements = closure(xml)
    elements.size() ? true : false    
}

def xmlString = '''<root>         <persons>             <person gender="female">X</person>             <person gender="female">Y</person>             <person gender="male">Z</person>         </persons>     </root>'''

println isElementExists(xmlString) {x -> x.'**'.findAll { it.name()=='person' && it.@gender == 'male' } }

println isElementExists(xmlString) {x -> x.persons.person }

//Below two statements is same as above statement

def locator = {x -> x.persons.person }
println isElementExists(xmlString, locator)