【Groovy】Xml 反序列化 ( 使用 XmlParser 解析 Xml 文件 | 获取 Xml 文件中的节点和属性 | 获取 Xml 文件中的节点属性 )
2023-06-13 09:18:01 时间
文章目录
一、创建 XmlParser 解析器
创建 XmlParser 解析器 , 传入 Xml 文件对应的 File 对象 ;
// 要解析的 xml 文件
def xmlFile = new File("a.xml")
// 创建 Xml 文件解析器
def xmlParser = new XmlParser().parse(xmlFile)
解析如下 xml 文件 :
<?xml version='1.0' encoding='UTF-8'?>
<student>
<name code="utf-8">Tom</name>
<age>18</age>
<team>
<member>Jerry</member>
</team>
</student>
二、获取 Xml 文件中的节点
使用
xmlParser.name
代码 , 可以获取 Xml 文件中的 <name>
节点 , <name>
节点位于根节点下, 可以直接获取 , 由于相同名称的节点可以定义多个 , 因此这里获取的 <name>
节点 是一个数组 ;
// 获取 xml 文件下的 <name> 节点
// <name> 节点位于根节点下, 可以直接获取
// 获取的 <name> 节点是一个数组
// 如果只有一个该节点, 可以直接获取第 0 个元素即可
println xmlParser.name
println xmlParser.name[0]
打印结果如下 :
[name[attributes={code=utf-8}; value=[Tom]]]
name[attributes={code=utf-8}; value=[Tom]]
获取多层嵌套的节点 :
// 获取 <team> 节点 下的 <member> 节点, 获取的是数组
// 也是获取第 0 个元素
println xmlParser.team[0].member[0]
三、获取 Xml 文件中的节点属性
XmlParser 获取的节点类型是 Node 类型对象 , 调用 Node 对象的 attributes() 方法 , 可获取 Xml 节点的属性 ;
// 获取 name 节点
Node nameNode = xmlParser.name[0]
// 获取 Activity 节点的属性 , 这是一个 map 集合
println nameNode.attributes()
执行结果为 :
[code:utf-8]
四、完整代码示例
完整代码示例 :
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()
执行结果 :
[name[attributes={code=utf-8}; value=[Tom]]]
name[attributes={code=utf-8}; value=[Tom]]
member[attributes={}; value=[Jerry]]
[code:utf-8]
相关文章
- Linux文件rwx属性「建议收藏」
- ExcelVBA文件操作之Application.FileDialog属性与方法
- ExcelVBA-FSO对象模型-Files属性(提取文件列表)
- Golang 判断是否为 zip 文件
- Linux文件基本属性与文件查找
- 【Java 虚拟机原理】Class 字节码二进制文件分析 四 ( 字段表数据结构 | 字段表详细分析 | 访问标志 | 字段名称 | 字段描述符 | 属性项目 )
- 【Kotlin】扩展函数总结 ★ ( 超类扩展函数 | 私有扩展函数 | 泛型扩展函数 | 扩展属性 | 定义扩展文件 | infix 关键字用法 | 重命名扩展函数 | 标准库扩展函数 )
- 如何在Linux使用 chattr 命令更改文件或目录的扩展属性?
- Maven让资源文件处理插件能够解析资源文件中的Maven属性详解程序员
- sruts2:单个文件上传,多个文件上传(属性驱动)详解编程语言
- java属性文件properties常用操作工具类详解编程语言
- 使用JAVA读写Properties属性文件详解编程语言
- Linux搭建文件服务器:轻松简单!(linux搭建文件服务器)
- 掌握Linux下的LS命令,简化文件管理(linuxls命令使用)
- Linux查看文件属性的方法(linux查看文件的属性)
- 什么是文件,文件(属性、操作、类型及结构)详解
- Linux文件只读属性:掌握技巧保证安全(linux文件只读属性)
- Linux文件属性:有效掌控你的文件(linux文件s属性)
- Linux文件查找和替换实战指南(linux查找文件并替换)
- 文件Linux 上使用Vim保存文件的技巧(linuxvim保存)
- 定Linux文件安全之锁定技术(linux文件锁)
- Linux文件扩展属性:提升效率的佳品(linux文件扩展属性)
- 掌握Linux文件的S属性权限知识(linuxs属性)
- 文件MySQL压缩包文件的下载与安装(mysql下载的压缩包)
- Linux文件互斥技巧:保证数据安全性(linux文件互斥)
- Web.Config文件配置之限制上传文件大小和时间的属性配置