Groovy XmlSlurper: Find elements in XML structure
If DataFieldName is unique in a file:
println new XmlSlurper() .parseText(xml) .DataFieldText.find {it.DataFieldName == "Field #1"} .DataFieldValue.text()
If it is not, and you want to get an array with all matching DataFieldValues:
println new XmlSlurper() .parseText(xml) .DataFieldText.findAll {it.DataFieldName == "Field #1"}*.DataFieldValue*.text()
def xml = """<Data> <DataFieldText> <DataFieldName>Field #1</DataFieldName> <DataFieldValue>1</DataFieldValue> </DataFieldText> <DataFieldText> <DataFieldName>Field #2</DataFieldName> <DataFieldValue>2</DataFieldValue> </DataFieldText> <DataFieldText> <DataFieldName>Field #3</DataFieldName> <DataFieldValue>3</DataFieldValue> </DataFieldText> </Data>""" def payload = new XmlSlurper().parseText(xml) def node = payload.'**'.find() { myNode -> myNode.DataFieldName.text() == 'Field #1' } value = node.DataFieldValue?.text() println "${value}\n"