文章目录
一、创建 XmlNode 节点
- 一、创建 XmlNode 节点
- 二、管理 XmlNode 节点并将根节点转为 Xml 信息
- 三、完整代码示例
- 1、自定义 Xml 生成器 MyBuilderSupport
- 2、Xml 节点封装了 XmlNode
- 3、在 Groovy 脚本中生成 Xml 信息
在 class MyBuilderSupport extends BuilderSupport
类中维护一个 Map 集合 , 该 Map 集合用于存储 上一篇博客 【Groovy】自定义 Xml 生成器 BuilderSupport ( 构造 Xml 节点类 | 封装节点名称、节点值、节点属性、子节点 | 将封装的节点数据转为 Xml 字符串 ) 中封装的 XmlNode 节点 ;
该 Map 集合的 Key 是节点名称 , Value 是 XmlNode 节点的值 ;
/**
* Map 集合
* Key 为 节点的 name 名称
* Value 为 节点 XmlNode 对象
*/
def xmlNodes = [:]
createNode 方法 , 是创建节点的方法 , 此处可以创建 XmlNode 节点 , 并放入 Map 集合中 ;
@Override
protected Object createNode(Object name, Map attributes, Object value) {
println "创建节点 名称 : $name, 属性 : $attributes, 值 : $value"
xmlNodes.put(name, new XmlNode(name, value, attributes))
return name;
}
二、管理 XmlNode 节点并将根节点转为 Xml 信息
BuilderSupport#nodeCompleted 方法是节点关闭的回调方法 ;
方法原型如下 :
@Override
protected void nodeCompleted(Object parent, Object node) {
super.nodeCompleted(parent, node)
}
其中 Object node
是被关闭的节点 , Object parent
是被关闭节点的父节点 ;
节点关闭时 , 可以根据 Object node
参数获取该被关闭的节点
def currentXmlNode = xmlNodes[node]
如果该被关闭的节点有父节点 , 即 Object parent
参数不为空 , 则将该节点放入父节点 XmlNode 的 children 子节点集合中 ;
if (parent) {
// 该节点有父节点, 将该节点放入父节点的 children 集合中
xmlNodes[parent].children
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?