//Define your data as list of maps as shown below
def data = [
[number: 26354, price: 15000, date: '17-12-2017', customer: 'Clinton'],
[number: 16514, price: 28000, date: '24-08-2017', customer: 'Mark']
]
def xml = new groovy.xml.StreamingMarkupBuilder().bind {
//Change the root element as needed instead of invoiceRequest
invoiceRequest {
invoices {
//Loop thru list and create invoice elements
data.each { inv ->
invoice (number: inv.number) {
price (inv.price as double)
date (inv.date)
customer(inv.customer)
}
}
}
}
}
println groovy.xml.XmlUtil.serialize(xml)
Ly9EZWZpbmUgeW91ciBkYXRhIGFzIGxpc3Qgb2YgbWFwcyBhcyBzaG93biBiZWxvdwpkZWYgZGF0YSA9IFsgCiAgICAgICAgICAgICBbbnVtYmVyOiAyNjM1NCwgcHJpY2U6IDE1MDAwLCBkYXRlOiAnMTctMTItMjAxNycsIGN1c3RvbWVyOiAnQ2xpbnRvbiddLAoJICAgICBbbnVtYmVyOiAxNjUxNCwgcHJpY2U6IDI4MDAwLCBkYXRlOiAnMjQtMDgtMjAxNycsIGN1c3RvbWVyOiAnTWFyayddCiAgICAgICAgICAgXQoKZGVmIHhtbCA9IG5ldyBncm9vdnkueG1sLlN0cmVhbWluZ01hcmt1cEJ1aWxkZXIoKS5iaW5kIHsKICAgIC8vQ2hhbmdlIHRoZSByb290IGVsZW1lbnQgYXMgbmVlZGVkIGluc3RlYWQgb2YgaW52b2ljZVJlcXVlc3QKICAgIGludm9pY2VSZXF1ZXN0IHsKCWludm9pY2VzIHsKICAgICAgICAgICAvL0xvb3AgdGhydSBsaXN0IGFuZCBjcmVhdGUgaW52b2ljZSBlbGVtZW50cwogICAgICAgICAgIGRhdGEuZWFjaCB7IGludiAtPgogICAgICAgICAgICAgIGludm9pY2UgKG51bWJlcjogaW52Lm51bWJlcikgewoJICAgICAgICAgcHJpY2UgKGludi5wcmljZSBhcyBkb3VibGUpCiAgICAgICAgICAgICAgICAgZGF0ZSAoaW52LmRhdGUpCiAgICAgICAgICAgICAgICAgY3VzdG9tZXIoaW52LmN1c3RvbWVyKQogICAgICAgICAgICAgIH0KICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CnByaW50bG4gZ3Jvb3Z5LnhtbC5YbWxVdGlsLnNlcmlhbGl6ZSh4bWwp