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

实战 Groovy: 构建和解析 XML

 2009-11-18 00:00:00 来源:WEB开发网   
核心提示: 比较清单 2 中的 Java 代码和清单 3 中相应的 Groovy 代码: 清单 3. 在 Groovy 中解析 XMLdeflangs=newXmlParser().parse("languages.xml")println"type=${langs.attri

比较清单 2 中的 Java 代码和清单 3 中相应的 Groovy 代码:


清单 3. 在 Groovy 中解析 XML
def langs = new XmlParser().parse("languages.xml") 
println "type = ${langs.attribute("type")}" 
langs.language.each{ 
 println it.text() 
} 
 
//output: 
type = current 
Java 
Groovy 
JavaScript 

Groovy 代码最出色的地方并不是它要比相应的 Java 代码简短很多 — 虽然使用 5 行 Groovy 代码解析 5 行 XML 是一个压倒性的优势。Groovy 代码最让我欣喜的一个地方就是它更具表达性。在编写 langs.language.each 时,我的感觉就像是在直接操作 XML。在 Java 版本中,您再也看不到 XML。

字符串变量和 XML

当您将 XML 存储在 String 变量而不是文件中时,在 Groovy 中使用 XML 的好处会变得更加明显。Groovy 的三重引号(在其他语言中通常称作 HereDoc)使得在内部存储 XML 变得非常轻松,如清单 4 所示。这与清单 3 中的 Groovy 示例之间的惟一区别就是将 XmlParser 方法调用从 parse()(它处理 File、InputStreams、Reader 和 URI)切换到 parseText()。


清单 4. 将 XML 存储在 Groovy 内部
def xml = """ 
<langs type="current"> 
 <language>Java</language> 
 <language>Groovy</language> 
 <language>JavaScript</language> 
</langs> 
""" 
 
def langs = new XmlParser().parseText(xml) 
println "type = ${langs.attribute("type")}" 
langs.language.each{ 
 println it.text() 
} 

上一页  1 2 3 4 5 6 7  下一页

Tags:实战 Groovy 构建

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