/* sample.xml 文件内容
<langs type="current">
<language>Java</language>
<language>Groovy</language>
<language>JavaScript</language>
</langs>
*/
xml = new XmlParser().parse("sample.xml")
//groovy.util.XmlParser , groovy默认导入包groovy.util
println "${xml.attribute('type')}"
//获取node的属性
xml.language.each {
println it.text()
}
//直接遍历子节点,太方便了;不过,为了增强可读性,还是低调一点,用下标的方式吧:
xml["language"].each {
println it.text()
}
//可以用三重引号,把xml文件的内容放到一个字符串中
xml_content=
"""
<langs type="current">
<language>Java</language>
<language>Groovy</language>
<language>JavaScript</language>
</langs>
"""
xml=new XmlParser().parseText(xml_content)
xml.language.eachWithIndex {
it,idx->
println "$idx: ${it.text()}"
}
//创建一个xml文件
def content=new StringWriter()
def xml = new groovy.xml.MarkupBuilder(content)
//将xml的内容写到content中
xml.langs(type:'current',level:'advanced'){
language(verison:1.6,state:'stable',"Java")
language(verison:1.84,state:'test',"groovy"){
language('version':1.37,state:'GA','Gails')
}
def langs=[["ver":1.4,'state':'beta','name':'GO']]
langs.each{
language(version:it.ver,state:it.state,it.name)
}
}
println content
//使用StreamingMarkupBuilder创建xml
def comment="<![CDATA[<!-- address is new to this --> ]]>"
def builder=new groovy.xml.StreamingMarkupBuilder()
builder.encoding='utf-8'
def person = {
mkp.xmlDeclaration()
mkp.pi('xml-stylesheet':"type='text/xsl' href='myfile.xslt'")
mkp.declareNamespace('':"http://namespace")
mkp.declareNamespace('location':"http://namespace")
person(id:100){
firstname('bob')
lastname('james')
mkp.yieldUnescaped(comment)
location.address('123 main')
}
}
def writer = new StringWriter()
writer << builder.bind(person)
println writer
分享到:
相关推荐
在Java生态系统中,Groovy经常被用来处理XML文档,因为它的动态特性使得XML的读取、修改和生成变得更加简单。 在Groovy中,XML被视为一种对象,可以通过内置的XMLSlurper和XMLParser库来解析和操作。XMLSlurper是...
Groovy 是一种强大的、动态的...这两个资源对于需要在Groovy环境中处理XML,同时利用Scala特性的开发者来说,都是极具价值的。开源项目的特点使得这些资源不仅免费,而且拥有活跃的社区支持,可以持续得到改进和完善。
Groovy的动态特性使得处理XML变得更为简洁,减少了样板代码。 4. **JDOM**: JDOM是专为Java设计的一个XML处理库,旨在提供一种简单、高效且直观的方式来处理XML文档。JDOM构建了一个完整的内存模型,允许开发者...
- **内容概述**: 介绍Groovy处理XML文档的方法。 - **知识点**: 如何使用Groovy来解析、生成和操作XML文档。 - **学习目标**: 掌握使用Groovy进行XML文档处理的技巧。 **第13章: Tips and Tricks** - **内容概述**:...
3. 数据处理:Groovy可以方便地处理XML、JSON等数据格式,常用于数据转换和解析。 4. 测试:Spock测试框架使用Groovy编写,提供了富有表达力的测试语句,简化了测试代码的编写。 5. 容器管理:在Apache Kafka、...
8. **Groovy HTML and XML Processing**: 提供了简洁的API来处理HTML和XML文档,如GPath和XmlSlurper。 9. **Grails Integration**: 虽然未明确提及,但Groovy常用于构建Grails框架的应用,这是一个基于Groovy的...
除了JSON,Groovy也提供了处理XML的强大工具,比如`XmlSlurper`。下面是一个简单的XML解析示例: ```groovy def xml = ''' ... ''' def xmlSlurper = new XmlSlurper() def response = xmlSlurper....
Groovy对XML的支持非常强大,不仅提供了内置的解析和生成能力,还有一系列的API和工具,使得XML处理变得简单而高效。 ### 深入Groovy的日常应用 #### 小贴士和技巧 这一部分提供了许多实用的Groovy编程小贴士和...
书中还涵盖了Groovy对XML和JSON的支持,使得数据交换和解析更加便捷。 压缩包中的"API"部分可能包含Groovy的标准库文档,这对于开发者来说是非常宝贵的资源。Groovy的API包含了各种内置类、方法和函数,覆盖了I/O、...
- **XML处理**:Groovy内置了强大的XML处理功能,支持XPath查询、DOM操作等。 - **单元测试**:Groovy支持多种单元测试框架,如JUnit、Spock等,提供了更简洁的测试语法。 #### 四、结语 《Groovy in Action》这...
2. **闭包(Closures)**:闭包是Groovy的一个强大特性,它是一种匿名函数,可以捕获其所在上下文的变量,常用于函数式编程和数据处理。 3. **领域规范语言(DSLs)**:Groovy可以方便地构建DSL,使得特定领域的...
5. **Groovy类库**:Groovy标准库提供了一系列的类和模块,涵盖了集合操作、元编程、XML处理、网络I/O等多个领域,这些类库极大地丰富了Groovy的内置功能。 6. **Gradle集成**:由于Groovy是Gradle的默认脚本语言,...
4. GPath语法:Groovy对XML和类似结构的查询提供了强大的语法支持,使得开发者可以非常方便地查询和操作XML文档和复杂的对象图。 5. 运行时和编译时特性:Groovy在运行时提供了大量的便捷特性,如隐式和显式的类型...
在实际项目中,`spring-beans-groovy`还支持在运行时动态修改Bean定义,这在处理复杂或不确定的配置时非常有用。例如,我们可以在启动时根据环境变量或配置文件动态生成Groovy脚本,然后通过`...
- **内置DSLs**:Groovy内建了用于构建XML和SQL的DSL,使得处理这些任务更直观。 - **自定义DSL**:Groovy的简洁语法和元编程能力使得构建自己的DSL变得容易,常用于配置和构建工具,如Gradle。 6. **集合操作**...
- **GroovyPath表达式语言**:类似于XPath,用于处理XML文档。 - **Groovlet**: 一种简化版的Servlet实现方式。 - **GroovySQL**: 提供了更简便的方式与SQL数据库交互。 - **GroovyBean**: 提供了与Bean相关的简洁...
同时,Groovy的语法糖使得处理XML、JSON等数据结构变得更加方便。 总结来说,Apache Groovy SDK 2.5.8是一个强大的工具,它为Groovy开发者提供了完整的开发环境,同时也是深入理解Gradle所必需的。无论你是Java...
9. **构建工具**:Groovy常被用于构建工具如Gradle,它允许使用Groovy脚本替代传统的XML配置,提高了构建脚本的可读性和可维护性。 1. **Spock**:Groovy还有一款强大的测试框架Spock,其基于行为驱动开发(BDD)...