groovy生成xml

当前做的项目,返回的结果是xml数据。上一个版本用freemarker做的,因为显示逻辑比较多,freemarker模版十分混乱。模版和数据分离在两个文件中(数据在java文件中),维护和增加新内容也比较麻烦。

这个版本改为用groovy生成xml,数据和表现逻辑在一个文件中,而且groovy文本中加入变量和生成xml都十分方便。整个代码变得很简明。

需要用到的是groovy包中提供的xml构建类:groovy.xml.MarkupBuilder。以下是一个实例:

import groovy.xml.MarkupBuilder def params=[:] def address=1066987654321 params.smsItems=['123','223','323'] params.wapItms=['http://wap.mycompony.com/bz.php?id=23'] def out=new StringWriter() def xmlResults=new MarkupBuilder(out) xmlResults.messages{ if(params.smsItems.isEmpty()){ message 'sms have no data.' }else{ sms(address:address){ params.smsItems.each{ content it } } } wap{ params.wapItms.each{ url it } } } println out

将产生如下结果:

<messages> <sms address='1066987654321'> <content>123</content> <content>223</content> <content>323</content> </sms> <wap> <url>http://wap.mycompony.com/bz.php?id=23</url> </wap> </messages>

相关日志

这篇文章上的评论 RSS feed TrackBack URI

留下评论