Groovy XmlSlurper: Find elements in XML structure Groovy XmlSlurper: Find elements in XML structure xml xml

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"