文档章节

怎样使用Groovy给XML增加特性

圣洁之子
 圣洁之子
发布于 2015/03/28 21:06
字数 185
阅读 562
收藏 2

怎样使用Groovy给XML增加特性?


问:

在Groovy中,我需要增加一个特性(attribute)到XML的根元素。我想使用 XmlSlurper。该怎样做?增加元素是很简单。

答:

在Groovy Console 运行以下代码,结果良好。

import groovy.xml.StreamingMarkupBuilder

// the original XML
def input = "<foo><bar></bar></foo>"

// add attributeName="attributeValue" to the root
def root = new XmlSlurper().parseText(input)
root.@attributeName = 'attributeValue'

// get the modified XML and check that it worked
def outputBuilder = new StreamingMarkupBuilder()
String updatedXml = outputBuilder.bind{ mkp.yield root }

assert "<foo attributeName='attributeValue'><bar></bar></foo>" == updatedXml

增加一个特性与读一个特性是一样的:

import groovy.xml.StreamingMarkupBuilder

def input = '''
<thing>
    <more>
    </more>
</thing>'''

def root = new XmlSlurper().parseText(input)

root.@stuff = 'new'

def outputBuilder = new StreamingMarkupBuilder()
String result = outputBuilder.bind{ mkp.yield root }

println result

将生成:

<thing stuff='new'><more></more></thing>

来源: <http://stackoverflow.com/questions/7795494/how-to-add-xml-attribute-using-groovy>


© 著作权归作者所有

共有 人打赏支持
圣洁之子
粉丝 6
博文 330
码字总数 97588
作品 0
深圳
后端工程师
私信 提问
Groovy 2.0 新特性之:模块化的 Groovy 以及扩展

更加模块化的 Groovy 关于 Groovy 2.0 新特性,最后我们要讲到的便是模块化。和 Java 一样,Groovy 不只是一个编程语言,同时还提供一组不同的 API 用于不同用途,包括:模板、Swing UI 构建...

红薯
2012/06/30
3.8K
5
Groovy 2018 Roadmap:支持 Java 8 lambda 和 Java 9

Groovy 是一门基于 JVM 的动态编程语言,这门成熟的 JVM 编程语言将会有怎样的发展?根据它的 2018 Roadmap,我们发现,Groovy 将会进行一些功能方面的增强,例如支持 Java 9 的模块化和 Ja...

局长
2017/12/05
1K
9
关于语言的学习

.NET Assembly X86 Alpha ASP C++ C# Clojure CSS Dephi DTD Fortra Groovy HTML Java Java Script Java Server Page Late X Lisp Lua Matlab Pascal Perl PHP Python Ruby Scala Shell Scri......

870177103
2013/08/03
774
18
Spock单元测试框架使用详解

Spock(Spock官网:http://spockframework.org/ )作为java和Groovy测试一种表达的规范语言,其参考了Junit、Groovy、jMock、Scala等众多语言的优点,并采用Groovy作为其语法,目前能够在绝大多...

zhglance
2017/11/16
0
0
Groovy1.7.4及1.8-beta-1问世

Groovy1.7.4及1.8-beta-1几天前已经发布,其中1.8-beta-1多了不少新特性。 Groovy1.7.4修改了使用GroovyScriptEngine自动重装载、联合编译(joint compiler——该机制确保Groovy和Java可以无...

groovyland
2010/07/27
1
0

没有更多内容

加载失败,请刷新页面

加载更多

远程获得的有趣的linux命令

使用这些工具从远程了解天气、阅读资料等。 我们即将结束为期 24 天的 Linux 命令行玩具日历。希望你有一直在看,如果没有,请回到开始,从头看过来。你会发现 Linux 终端有很多游戏、消遣和...

Linux就该这么学
9分钟前
0
0
Apollo配置详细步骤(Windows环境)

一. 准备工作 1.下载 apollo 安装包 下载链接:http://activemq.apache.org/apollo/download.html 2.下载 java JDK 安装包 ( apollo 依赖 java 环境) 下载链接:http://www.oracle.com/techn......

morpheusWB
31分钟前
0
0
聊聊flink的AsyncWaitOperator

序 本文主要研究一下flink的AsyncWaitOperator AsyncWaitOperator flink-streaming-java_2.11-1.7.0-sources.jar!/org/apache/flink/streaming/api/operators/async/AsyncWaitOperator.java ......

go4it
57分钟前
1
0
Java并发编程基础(四)

ThreadGroup 在主线程创建得线程,如果没有给他指定线程组,那么创建的线程,默认和主线程同一个线程组。线程组可以底下可以是线程,也可以实线程组。 构建线程组的方法: private ThreadGr...

chendom
今天
2
0
Scala学习(一)

学习Spark之前需要学习Scala。 参考学习的书籍:快学Scala

柠檬果过
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部