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

实战 Groovy: 构建和解析 XML

 2009-11-18 00:00:00 来源:WEB开发网   
核心提示: 注意,XmlParser.parseText() 方法返回了一个 groovy.util.Node — 在本例中是 XML 文档的根 Node,实战 Groovy: 构建和解析 XML(9),当您调用 println langs 时,它会调用 Node.toString() 方法,清

注意,XmlParser.parseText() 方法返回了一个 groovy.util.Node — 在本例中是 XML 文档的根 Node。当您调用 println langs 时,它会调用 Node.toString() 方法,以便返回调试输出。要获取真实数据,您需要调用 Node.attribute() 或者 Node.text()。

使用 XmlParser 获取属性

如前所述,您可以通过调用 Node.attribute("key") 来获取单独的属性。如果您调用 Node.attributes(),它会返回包含所有 Node 的属性的 HashMap。使用您在 “for each 剖析” 一文中所掌握的 each 闭包,遍历每个属性简直就是小菜一碟。清单 12 显示了一个相应的例子。


清单 12. XmlParser 将属性作为 HashMap 对待
def langs = new XmlParser().parseText(xml) 
 
println langs.attribute("count") 
// 3 
 
langs.attributes().each{k,v-> 
 println "-" * 15 
 println k 
 println v 
} 
 
//output: 
--------------- 
type 
current 
--------------- 
count 
3 
--------------- 
mainstream 
true 

与操作属性相类似,XmlParser 为处理元素提供了更好的支持。

使用 XmlParser 获取元素

XmlParser 提供了一种直观的查询元素的方法,称作 GPath。(它与 XPath 类似,仅在 Groovy 中得到了实现。)举例来说,清单 13 演示了我之前使用的 langs.language 结构返回了包含查询结构的 groovy.util.NodeList。NodeList 扩展了 java.util.ArrayList,因此它基本上就是一个赋予了 GPath 超级权限的 List。

上一页  4 5 6 7 8 9 10  下一页

Tags:实战 Groovy 构建

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