Friday 15 July 2011

groovy - XmlSlurper to return all xml elements into a map -



groovy - XmlSlurper to return all xml elements into a map -

i have next groovy code:

def xml = '''<note> <to>tove</to> <from>jani</from> <heading>reminder</heading> <body>don't forget me weekend!</body> <foot> <email>m@m.com</email> <sig>hello world</sig> </foot> </note>''' def records = new xmlslurper().parsetext(xml)

how records homecoming map looks following:

["to":"tove","from":"jani","heading":"reminder","body":"don't forget me weekend!","foot":["email":"m@m.com","sig":"hello world"]]

thanks.

you can swing recursion weapon. ;)

def xml = '''<note> <to>tove</to> <from>jani</from> <heading>reminder</heading> <body>don't forget me weekend!</body> <foot> <email>m@m.com</email> <sig>hello world</sig> </foot> </note>''' def slurper = new xmlslurper().parsetext( xml ) def converttomap(nodes) { nodes.children().collectentries { [ it.name(), it.childnodes() ? converttomap(it) : it.text() ] } } assert converttomap( slurper ) == [ 'to':'tove', 'from':'jani', 'heading':'reminder', 'body':"don't forget me weekend!", 'foot': ['email':'m@m.com', 'sig':'hello world'] ]

groovy

No comments:

Post a Comment