WEB开发网
开发学院软件开发Java 实战 Groovy: 构建和解析 XML 阅读

实战 Groovy: 构建和解析 XML

 2009-11-18 00:00:00 来源:WEB开发网   
核心提示: 清单 13. 使用 GPath 和 XmlParser 进行查询deflangs=newXmlParser().parseText(xml)//shortcutquerysyntax//onananonymousNodeListlangs.language.each{printlnit.text


清单 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] 

上一页  5 6 7 8 9 10 

Tags:实战 Groovy 构建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接