接触groovy也有比较长一段时间了,刚接触时是刚得挺有趣的,学来玩玩。玩着到后来就忍不住引入到工作中了。多用于做些效率不重要的小任务。最近有个需求是定期从另一个网站提供的接口导入xml数据到数据库,数据量是比较少的。
在Java中我只用过dom4j做xml解释,对着一堆document,node,element之类的东西,还要一层一层的深入。。。想起都已经觉得烦
在groovy的文档上扫了一下,发现有个叫XmlSlurper的东东,提供的接口可以让我们像使用一个对象一样去读一个element,非常直观简单。
用文档中提供的XML为例:
example.xml
readxml.groovy
这样就会打印出N行
car=XXX
car.country=XXX
Wow!好爽
在Java中我只用过dom4j做xml解释,对着一堆document,node,element之类的东西,还要一层一层的深入。。。想起都已经觉得烦
在groovy的文档上扫了一下,发现有个叫XmlSlurper的东东,提供的接口可以让我们像使用一个对象一样去读一个element,非常直观简单。
用文档中提供的XML为例:
example.xml
class XmlExamples { static def CAR_RECORDS = ''' <records> <car name='HSV Maloo' make='Holden' year='2006'> <country>Australia</country> <record type='speed'>Production Pickup Truck with speed of 271kph</record> </car> <car name='P50' make='Peel' year='1962'> <country>Isle of Man</country> <record type='size'>Smallest Street-Legal Car at 99cm wide and 59 kg in weight</record> </car> <car name='Royale' make='Bugatti' year='1931'> <country>France</country> <record type='price'>Most Valuable Car at $15 million</record> </car> </records> ''' }
readxml.groovy
def content = .....//省略把xml读入成String的代码 def records = new XmlSlurper().parseText(content) def allRecords = records.car allRecords.each() { println it.name + "=" + it.@name.text() println it.name + ".country=" + it.country.text() }
这样就会打印出N行
car=XXX
car.country=XXX
Wow!好爽