文档章节

怎样使用Groovy给XML增加特性

圣洁之子
 圣洁之子
发布于 2015/03/28 21:06
字数 185
阅读 552
收藏 2
点赞 0
评论 0

怎样使用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
博文 306
码字总数 92734
作品 0
深圳
后端工程师
Groovy 2018 Roadmap:支持 Java 8 lambda 和 Java 9

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

局长
2017/12/05
1K
9
Groovy 2.0 新特性之:模块化的 Groovy 以及扩展

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

红薯
2012/06/30
3.5K
5
关于语言的学习

.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
744
18
Spock单元测试框架使用详解

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

zhglance
2017/11/16
0
0
Gradle从入门到实战 - Groovy基础

前言 Android方向的第一期文章,会专注于Gradle系列,名字叫做『 Gradle从入门到实战』,计划有如下几个课程: Groovy基础 全面理解Gradle 如何创建Gradle插件 分析Android的build tools插件...

亭子happy
06/13
0
0
Gradle学习(一)——简介

基础 依赖管理是基于apache Ivy的,任务和构建是基于ant的,脚本是用groovy的,如果你之前已经非常了解这三样的话,那么你已经学会了30% 优点 比之前的构建系统更优的有几点: 1. 更为强大的...

lastsweetop
2017/12/19
0
0
PlayRythm 1.0.0-RC2发布

PlayRythm 1.0.0-RC2发布,该版本增加度 Google Application Engine 的支持。 PlayRythm是基于Rythm模板引擎的PlayFramework v1.x插件,在内置的groovy以及很受欢迎的Japid模板引擎之外提供了...

罗格林
2012/05/06
516
0
Groovy++:与Groovy有何不同

1.Groovy++编译时检查更严格 例1: / Leave it commented to run the dynamic Groovy version; Uncomment to run Groovy++ version / //@Typed package test def x = { List list -> list.si......

绿悠悠
2010/08/24
2.6K
2
采用groovy开发基于JBoss的JSF应用

开发环境 JBoss AS 4.2.3GA + JBossTools 2.1.2 + GroovyEclipsePlugin 1. 项目准备 1.1. 新建 一个JSF项目 在Eclipse中选择“File-New->JSF Project”,在出现的窗口中输入: Project Name......

绿悠悠
2010/06/08
703
0
MVC 框架--fw4jREST

fw4jREST 是以 REST 风格设计的 MVC 框架,可以使用 Java 和 Groovy 写 Controller,使用 Java 注解声明Controller 层。 fw4jREST 是基于 fw4j 编写的,去掉了springmvc的框架注解命名方式,...

独特程序
2015/03/31
746
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

eclipse SVN 项目重新定位

SVN 重新定位 1.方法一 首先:在Eclipse中选择Windows-> Show View->others 就会出现【SVN资源库/SVN Repositories】,选中后,点击确认; 然后:选中原有的地址,选择【重新定位/Relocate】...

qimh
12分钟前
0
0
Linux 第29课 ——Linux集群架构(下)

Linux集群架构(下) 八、DR模式搭建 8.1 准备工作 试验需求三台机器: 分发器,也叫调度器(简写为dir) 192.168.112.136 ying01 rs1 192.168.112.138 ying02 rs2 192.168.112.139 ying03 vip...

feng-01
17分钟前
0
0
轻松搭建svn版本管理工具+svnmanager管理客户端

前面的文章有写过svn版本管理工具的安装是基于svn的安装包进行安装,对于svn与apache的结合还得下svn和apache的模块进行结合过程比较繁琐,今天来介绍下通过centos的yum来安装svn能够快速安装...

javazyw
26分钟前
0
0
keepalived配置高可用集群

Linux集群概述 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:...

TaoXu
32分钟前
0
0
mysql联表批处理操作

1 概述 mysql中的单表增删改查操作,可以说是基本中的基本. 实际工作中,常常会遇到一些基本用法难以处理的数据操作,譬如遇到主从表甚至多级关联表的情况(如一些历史问题数据的批量处理),考虑到...

社哥
34分钟前
0
0
IntelliJ IDEA 详细图解最常用的配置,适合刚刚用的新人。

刚刚使用IntelliJ IDEA 编辑器的时候,会有很多设置,会方便以后的开发,磨刀不误砍柴工。 比如:设置文件字体大小,代码自动完成提示,版本管理,本地代码历史,自动导入包,修改注释,修改...

kim_o
49分钟前
0
0
Google Java编程风格指南

目录 前言 源文件基础 源文件结构 格式 命名约定 编程实践 Javadoc 后记 前言 这份文档是Google Java编程风格规范的完整定义。当且仅当一个Java源文件符合此文档中的规则, 我们才认为它符合...

niithub
51分钟前
0
0
java.net.MalformedURLException异常说明

1.异常片段 Java代码中,在进行URL url = new URL(urllink)操作时,提示以下异常信息,该类异常主要问题出在参数urllink上面。 异常片段1 java.net.MalformedURLException at java.ne...

lqlm
52分钟前
1
0
CentOS7修改mysql5.6字符集

解决办法:CentOS7下修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家所需要的字符集,是国际编码。 具体操作如下: 1.进入MySQL [root@tianqi-01 ~]# mysql -uroot -p Enter passw...

河图再现
53分钟前
0
0
DevExpress v18.1新版亮点——WPF篇(一)

用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容。本文将介绍了DevExpress WPF v18.1 的新功能,快来下载试用新版本!点击下载>> Accordion Co...

Miss_Hello_World
56分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部