Groovy 的xml处理方式:GPath和动态属性

是否你用java进行过大量的XML处理工作,如果选择W3C DOM 使工作会变得更容易一些,但是java本身不在语言层面对你提供任何帮助——它不能适应你的需要。

Groovy允许类在编译时没有的属性在运行时起作用。GPath就是建立在这个特性之上的,并且允许像Xpath那样来浏览XML文档。

假定你有一个名称为“customers.xml”的文件,内容像这样:[code]<?xml version="1.0"?>

<corporate>

    <customer
        name="Bill Gates"
        company="Microsoft" />

    <customer
        name="Steve Jobs"
        company="Apple" />

    <customer
        name="Jonathan Schwartz"
        company="Sun" />
</corporate>

<consumer>

    <customer name="John Doe" />

    <customer name="Jane Doe" />
</consumer>

[/code]你能使用下面的代码输出所有的“corporate”客户的名称和公司(从一开始使用groovy的Builder生成xml文件也是比java容易许多)。def customers = new XmlSlurper().parse(new File('customers.xml')) for (customer in customers.corporate.customer) { println "${[email protected]} works for ${[email protected]}" }这里仅仅证实了groovy的少数特性,你已经在前面的例子中看到了groovy别的特性——使用GString对String进行功能增强,简化了的for循环处理,可选的类型声明,可选的语句结束符(在java中为分号),这些仅仅是个开始,这些特性彼此之间工作的十分融洽,以至于你很难注意到你正在使用他们。

尽管比java友好和功能增强是groovy的主要目标,但也考虑到许多有价值的方面,迄今为止,我们已经注意到groovy的许多技术手段,但是一个语言需要更成功,吸引大量的人,在计算机语言世界,更多更好的特性不保证会让你有大量的用户,必须对开发人员和管理人员两个方面都具有吸引力才行。