前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Groovy】Xml 反序列化 ( 使用 XmlParser 解析 Xml 文件 | 删除 Xml 文件中的节点 | 增加 Xml 文件中的节点 | 将修改后的 Xml 数据输出到文件中 )

【Groovy】Xml 反序列化 ( 使用 XmlParser 解析 Xml 文件 | 删除 Xml 文件中的节点 | 增加 Xml 文件中的节点 | 将修改后的 Xml 数据输出到文件中 )

作者头像
韩曙亮
发布2023-03-30 11:12:43
6.1K0
发布2023-03-30 11:12:43
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

一、删除 Xml 文件中的节点


【Groovy】Xml 反序列化 ( 使用 XmlParser 解析 Xml 文件 | 获取 Xml 文件中的节点和属性 | 获取 Xml 文件中的节点属性 ) 博客基础上 , 删除 Xml 文件中的节点信息 ;

下面是要解析的 xml 文件 :

代码语言:javascript
复制
<?xml version='1.0' encoding='UTF-8'?>
<student>
  <name code="utf-8">Tom</name>
  <age>18</age>
  <team>
    <member>Jerry</member>
  </team>
</student>

获取 age 节点 , 删除子节点 , 需要通过父节点进行删除 , 调用 xmlParser 对象 ( 根节点 ) 的 remove 方法 , 删除二级节点 age 节点 ;

代码语言:javascript
复制
// 获取 age 节点
Node ageNode = xmlParser.age[0]
// 从根节点中删除 age 节点
xmlParser.remove(ageNode)

二、增加 Xml 文件中的节点


增加 Xml 文件中的节点 , 调用 appendNode 方法 , 可以向节点插入一个子节点 ;

代码语言:javascript
复制
// 添加节点
xmlParser.appendNode("height", "175cm")

三、将修改后的 Xml 数据输出到文件中


创建 XmlNodePrinter 对象 , 并调用该对象的 print 方法 , 传入 XmlParser 对象 , 可以将该 XmlParser 数据信息写出到文件中 ;

代码语言:javascript
复制
// 将修改后的 Xml 节点输出到目录中
new XmlNodePrinter(new PrintWriter(new File("b.xml"))).print(xmlParser)

四、完整代码示例


完整代码示例 :

代码语言:javascript
复制
import groovy.xml.XmlNodePrinter

// 要解析的 xml 文件
def xmlFile = new File("a.xml")

// 创建 Xml 文件解析器
def xmlParser = new XmlParser().parse(xmlFile)

// 获取 xml 文件下的 <name> 节点
// <name> 节点位于根节点下, 可以直接获取
// 获取的 <name> 节点是一个数组
// 如果只有一个该节点, 可以直接获取第 0 个元素即可
println xmlParser.name
println xmlParser.name[0]

// 获取 <team> 节点 下的 <member> 节点, 获取的是数组
// 也是获取第 0 个元素
println xmlParser.team[0].member[0]

// 获取 name 节点
Node nameNode = xmlParser.name[0]
// 获取 Activity 节点的属性 , 这是一个 map 集合
println nameNode.attributes()


// 获取 age 节点
Node ageNode = xmlParser.age[0]
// 从根节点中删除 age 节点
xmlParser.remove(ageNode)

// 添加节点
xmlParser.appendNode("height", "175cm")

// 将修改后的 Xml 节点输出到目录中
new XmlNodePrinter(new PrintWriter(new File("b.xml"))).print(xmlParser)

执行结果 :

代码语言:javascript
复制
[name[attributes={code=utf-8}; value=[Tom]]]
name[attributes={code=utf-8}; value=[Tom]]
member[attributes={}; value=[Jerry]]
[code:utf-8]
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-02-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、删除 Xml 文件中的节点
  • 二、增加 Xml 文件中的节点
  • 三、将修改后的 Xml 数据输出到文件中
  • 四、完整代码示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档