实战 Groovy: 构建和解析 XML
2009-11-18 00:00:00 来源:WEB开发网
清单 13. 使用 GPath 和 XmlParser 进行查询def langs = new XmlParser().parseText(xml)
// shortcut query syntax
// on an anonymous NodeList
langs.language.each{
println it.text()
}
// separating the query
// and the each closure
// into distinct parts
def list = langs.language
list.each{
println it.text()
}
println list.getClass()
// groovy.util.NodeList
当然,GPath 是对 MarkupBuilder 的补充。它所采用的技巧与调用不存在的 phantom 方法相同,区别仅在于它用于查询已有的 XML 而不是动态地生成 XML。
知道 GPath 查询的结果是 List 之后,您可以让您的代码更加简练。Groovy 提供了一个 spread-dot 运算符。在单行代码中,它基本上能迭代整个列表并对每个项执行方法调用。结果将作为 List 返回。举例来说,如果您只关心对查询结果中的各个项调用 Node.text() 方法,那么清单 14 展示了如何在一行代码中实现它:
清单 14. 结合 spread-dot 运算符与 GPath// the long way of gathering the results
def results = []
langs.language.each{
results << it.text()
}
// the short way using the spread-dot operator
def values = langs.language*.text()
// [Java, Groovy, JavaScript]
// quickly gathering up all of the version attributes
def versions = langs.language*.attribute("version")
// [1.5, 1.6.0, 1.9]
- ››构建Windows 8风格应用23-App Bar概述及使用规范
- ››Groovy轻松入门
- ››构建域名服务器(DNS)
- ››实战:企业使用交换机VLAN路由配置
- ››实战案例分析:高质量软文对网站百度排名的影响
- ››实战经验浅谈网站搬家后的优化工作
- ››构建Android平台Google Map应用
- ››构建WinForm 通用速选(全选、反选、清空)组件
- ››实战Active Directory站点部署与管理,Active Dir...
- ››实战操作主机角色转移,Active Directory系列之十...
- ››构建Wordpress网站首选的5家国外主机
- ››实战经验:巧用微博推广淘宝网店
更多精彩
赞助商链接