在前一篇 Unmi 学习 Groovy 之 GroovyMarkup (一) 引入了 GroovyMarkup 及介绍了其中的一个 Builder(MarkupBuilder) 的用法。本篇继续。
groovy.util.NodeBuilder,用来创建一般任意对象的树状结构。看到了,它不在 groovy.xml 包之下,但它是一个 Builder,所以秉承了 Builder 的语法规则,而且还可用路径(对象导航)的方式来访问这个 Builder 实例中的节点或属性值。还是来看例子:
1import groovy.util.NodeBuilder; 2 3someBuilder = new NodeBuilder(); //只有这么一个构建方法 4 5root = someBuilder.users([balance:100]){ //这一块的语法完全同 MarkupBuilder 6 user([gender:"male"],"Unmi"); 7 user("Joe"){ 8 order(item:"Book"); 9 } 10} 11 12println root; //因为 NodeBuilder 不预示着输出,所以需要显示的 println看看上面程序的输出: Read More
- 每一种语言都不能忽略了 XML 操作相关的 API,而 Groovy 把使用 XML 的美妙和简易性推向了极致,这就是 GroovyMarkup。它不仅简化了 SAX、DOM 操作,并且把这一理念引入到了 Swing、Swt 界面绘制领域中,Ant、Maven 构建脚本生成中;甚至铺散到更广阔的领域。
Groovy 用闭包和命名参数给标记数据的操作创建通用的语法。GroovyMarkup 在实际的应用中表现为各种 Builder。例如在 Groovy 中内建了以下几个 Builder。
·groovy.xml.MarkupBuilder -- 将你的对象序列化成 XML 或 XHTML
·groovy.xml.SAXBuilder -- 可以用于现有的 SAX 处理器
·groovy.xml.DOMBuilder -- 创建并解析 DOM 文档
而且 GroovyMarkup 语法已经被公认为对操作特定于领域的对象结构很有价值,例如 Ant 文件和 Swing 用户界面。 Read More