`
快乐的牛
  • 浏览: 74447 次
社区版块
存档分类
最新评论

groovy 处理xml

 
阅读更多
/* 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
 
分享到:
评论

相关推荐

    Groovy 动态修改XML

    在Java生态系统中,Groovy经常被用来处理XML文档,因为它的动态特性使得XML的读取、修改和生成变得更加简单。 在Groovy中,XML被视为一种对象,可以通过内置的XMLSlurper和XMLParser库来解析和操作。XMLSlurper是...

    groovy-xml-2.2.0-beta-1.zip

    Groovy 是一种强大的、动态的...这两个资源对于需要在Groovy环境中处理XML,同时利用Scala特性的开发者来说,都是极具价值的。开源项目的特点使得这些资源不仅免费,而且拥有活跃的社区支持,可以持续得到改进和完善。

    xstream_dom4j_jdom_groovy解析xml

    Groovy的动态特性使得处理XML变得更为简洁,减少了样板代码。 4. **JDOM**: JDOM是专为Java设计的一个XML处理库,旨在提供一种简单、高效且直观的方式来处理XML文档。JDOM构建了一个完整的内存模型,允许开发者...

    Groovy in Action

    - **内容概述**: 介绍Groovy处理XML文档的方法。 - **知识点**: 如何使用Groovy来解析、生成和操作XML文档。 - **学习目标**: 掌握使用Groovy进行XML文档处理的技巧。 **第13章: Tips and Tricks** - **内容概述**:...

    groovy

    3. 数据处理:Groovy可以方便地处理XML、JSON等数据格式,常用于数据转换和解析。 4. 测试:Spock测试框架使用Groovy编写,提供了富有表达力的测试语句,简化了测试代码的编写。 5. 容器管理:在Apache Kafka、...

    groovy-all

    8. **Groovy HTML and XML Processing**: 提供了简洁的API来处理HTML和XML文档,如GPath和XmlSlurper。 9. **Grails Integration**: 虽然未明确提及,但Groovy常用于构建Grails框架的应用,这是一个基于Groovy的...

    groovy语法掘金1

    除了JSON,Groovy也提供了处理XML的强大工具,比如`XmlSlurper`。下面是一个简单的XML解析示例: ```groovy def xml = ''' ... ''' def xmlSlurper = new XmlSlurper() def response = xmlSlurper....

    groovy in action.pdf

    Groovy对XML的支持非常强大,不仅提供了内置的解析和生成能力,还有一系列的API和工具,使得XML处理变得简单而高效。 ### 深入Groovy的日常应用 #### 小贴士和技巧 这一部分提供了许多实用的Groovy编程小贴士和...

    Groovy学习资料(包括Groovy in action 的中英文以及API)

    书中还涵盖了Groovy对XML和JSON的支持,使得数据交换和解析更加便捷。 压缩包中的"API"部分可能包含Groovy的标准库文档,这对于开发者来说是非常宝贵的资源。Groovy的API包含了各种内置类、方法和函数,覆盖了I/O、...

    groovy+in+action

    - **XML处理**:Groovy内置了强大的XML处理功能,支持XPath查询、DOM操作等。 - **单元测试**:Groovy支持多种单元测试框架,如JUnit、Spock等,提供了更简洁的测试语法。 #### 四、结语 《Groovy in Action》这...

    groovy经典_资料

    2. **闭包(Closures)**:闭包是Groovy的一个强大特性,它是一种匿名函数,可以捕获其所在上下文的变量,常用于函数式编程和数据处理。 3. **领域规范语言(DSLs)**:Groovy可以方便地构建DSL,使得特定领域的...

    apache-groovy-sdk-3.0.6.zip

    5. **Groovy类库**:Groovy标准库提供了一系列的类和模块,涵盖了集合操作、元编程、XML处理、网络I/O等多个领域,这些类库极大地丰富了Groovy的内置功能。 6. **Gradle集成**:由于Groovy是Gradle的默认脚本语言,...

    Groovy.in.Action.2nd.Edition.pdf

    4. GPath语法:Groovy对XML和类似结构的查询提供了强大的语法支持,使得开发者可以非常方便地查询和操作XML文档和复杂的对象图。 5. 运行时和编译时特性:Groovy在运行时提供了大量的便捷特性,如隐式和显式的类型...

    spring-beans-groovy源码

    在实际项目中,`spring-beans-groovy`还支持在运行时动态修改Bean定义,这在处理复杂或不确定的配置时非常有用。例如,我们可以在启动时根据环境变量或配置文件动态生成Groovy脚本,然后通过`...

    groovy_demo

    - **内置DSLs**:Groovy内建了用于构建XML和SQL的DSL,使得处理这些任务更直观。 - **自定义DSL**:Groovy的简洁语法和元编程能力使得构建自己的DSL变得容易,常用于配置和构建工具,如Gradle。 6. **集合操作**...

    Groovy学习笔记

    - **GroovyPath表达式语言**:类似于XPath,用于处理XML文档。 - **Groovlet**: 一种简化版的Servlet实现方式。 - **GroovySQL**: 提供了更简便的方式与SQL数据库交互。 - **GroovyBean**: 提供了与Bean相关的简洁...

    apache-groovy-sdk-2.5.8.zip

    同时,Groovy的语法糖使得处理XML、JSON等数据结构变得更加方便。 总结来说,Apache Groovy SDK 2.5.8是一个强大的工具,它为Groovy开发者提供了完整的开发环境,同时也是深入理解Gradle所必需的。无论你是Java...

    groovy-binary-1.8.6

    9. **构建工具**:Groovy常被用于构建工具如Gradle,它允许使用Groovy脚本替代传统的XML配置,提高了构建脚本的可读性和可维护性。 1. **Spock**:Groovy还有一款强大的测试框架Spock,其基于行为驱动开发(BDD)...

Global site tag (gtag.js) - Google Analytics