xml_Class、xmlElementNode_Class这两个类是针对XML相关操作的类。

1、xml_Class类是针对XML文档操作的类

目录:

类型 原型 参数 返回 说明
Sub Sub [obj].init(byVal param)

param [DOMDocument | XMLString | filePath]

参数类型可以是:DOMDocument实例、xml结构的字符串、XML文件的相对路径

-

初始化实例(可以使用DOMDocument实例 或者 xml结构的字符串 或者 XML文件的相对路径初始化类实例)

初始化出错时,输出错误!

该过程整合了loadFile、loadXML、loadDocument三种过程。

Sub Sub [obj].loadFile(byVal filePath) filePath [String] XML文件的相对路径 - 用XML文件初始化类对象。初始化出错时,输出错误!
Sub Sub [obj].loadXml(byVal xmlString) xmlString [String] XML格式字符串(必须含有根节点) - 用XML字符串初始化类对象。初始化出错时,输出错误!
Sub Sub [obj].loadDocument(byVal DOMDocument) DOMDocument [DOMDocument] XML的原生态文档对象 - 用DOMDocument实例初始化类对象。初始化出错时,输出错误!
属性 [obj].format = [True | False] - - 保存文件时是否格式化当前XML字符样式,默认值false
属性 Get [obj].xmlDoc - [DOMDocument]  获取实例的DOMDocument对象
属性 Get [obj].root - [xmlElementNode] 获取当前文档根节点的xmlElementNode实例
属性 Get [obj].getNode(byVal xPath)  - [xmlElementNode | Nothing] 获取xPath匹配的第一个元素的xmlElementNode实例
属性 Get [obj].getNodes(byVal xPath)  -

[Array(

xmlElementNode,

xmlElementNode,

... )]

获取xPath匹配的所有元素的xmlElementNode实例数组
属性 Get item(byVal level, byVal index) - [xmlElementNode | Nothing] 获取指定级别、索引值的元素的xmlElementNode实例
方法 Function createNode(byVal nodeName, byVal nodeValue)

nodeName [String] 节点元素名称

nodeValue [String] 节点元素内容

 [IXMLDOMElement] XML原生态节点元素实例 创建一个元素节点对象(此时并没有插入到类实例中,返回的对象供原生态的xml操作需要,这里做扩展)
方法 Function createCDATA(byVal text) text [String] CDATA内容 [IXMLDOMCDATASection] XML原生态CDATA元素实例 创建一个CDATA节点对象(此时并没有插入到类实例中,返回的对象供原生态的xml操作需要,这里做扩展)
方法 Function createComment(byVal text) text [String] 注释文本 [IXMLDOMComment] XML原生态注释元素实例 创建一个注释节点对象(此时并没有插入到类实例中,返回的对象供原生态的xml操作需要,这里做扩展)
方法 Function createAttr(byVal attrName, byVal attrValue)

attrName [String] 属性名

attrValue [String] 属性值

[IXMLDOMAttribute] XML原生态属性元素实例 创建一个属性对象(此时并没有插入到类实例中,返回的对象供原生态的xml操作需要,这里做扩展)
方法 Function checkXML(byVal xmlString)  xmlString [String] 待检测字符串

[Array]

Array(0) [True | False] 检测结果

Array(1) [Empty | 错误描述]

检查字符串是否符合XML格式(必须含有根节点,注意含有&字符是不符合XML格式)
方法 Function checkXMLString(byVal xmlString) xmlString [String] 待检测字符串

[Array]

Array(0) [True | False] 检测结果

Array(1) [Empty | 错误描述]

检查字符串是否符合XML字符串格式(可以不包含有根节点的XML字符串,注意含有&字符是不符合XML格式)
过程 Sub save(byVal path) path [String] 相对路径

-

将当前xml文档保存成文件

2、xmlElementNode_Class类是针对XML节点操作的类

目录:

类型 原型 参数 返回 说明
属性 [obj].format = [True | False] - - 保存节点或者输出XML字符串时,是否格式化XML样式
属性 Get [obj].node - [IXMLDOMElement] 获取当前节点的XML原生态实例
属性 Get [obj].xmlDoc  - [IXMLDOMElement]  获取当前节点的XML原生态文档对象实例
属性 Get xmlClass()  - [xml_Class] 获取当前节点所在文档的xml_Class实例
属性 Get name() - [String]  获取当前节点名称
属性 Get root() - [xmlElementNode]  获取节点所在文档的根元素的xmlElementNode实例
属性 Get parent()  - [xmlElementNode | Nothing]  获取节点的父节点的xmlElementNode实例
属性 Get index() - [Number] 获取此节点在同胞节点中的索引值,值是>=0的整数
属性 Get level() - [Number] 获取此节点在xml树的所在级别值,值是>=1的整数
属性 Get xml() - [String] 获取节点的所有字符内容(节点名称+子节点)
属性 Get html() - [String] 返回节点内容(不包含节点本身)
属性 Get cdata()  - [String | Empty]  返回节点第一个CDATA内容
属性 Get text() - [String]  返回节点去掉HTML标记的内容 
属性 Get childNodeNums(byVal nodeTypeValue) 

nodeTypeValue [Number] 节点类型

nodeTypeValue = 0 所有子节点数量

nodeTypeValue = 1 元素子节点数量

nodeTypeValue = 3 文本子节点数量

nodeTypeValue = 4 CDATA子节点数量

nodeTypeValue = 8 注释子节点数量

[Number] >=0的整数 返回当前节点下指定类型的子节点数量(第一级子节点,不含子节点的子节点)
属性 Get clone(byVal includeChind) includeChind [True | False] 值true表示克隆时包含子节点 [xmlElementNode] 克隆当前节点
属性 Get attrNums() - [Number] >=0的整数 返回当前节点的属性数量
属性 Get attr(byVal attrName) - [String | Empty] 获取节点属性值
属性 Get arrAttr() - [Array( Array(attrName, attrValue), Array(attrName, attrValue) ... )] 获取当前节点的属性数组
属性 Get sibling(byval index)

index [Number] 兄弟节点所在序号值

index = 0 表示获取第一个兄弟节点

index = -1 表示获取最后一个兄弟节点

[xmlElementNode | Nothing] 获取当前节点的兄弟节点(只针对元素节点)
属性 Get preNode()  - [xmlElementNode | Nothing] 获取当前节点的前一个节点实例
属性 Get nextNode() - [xmlElementNode | Nothing] 获取当前节点的后一个节点实例
属性 Get getNode(byVal xPath) xPath [String] [xmlElementNode | Nothing] 获取当前节点下xPath匹配的第一个元素
属性 Get getNodes(byVal xPath)  xPath [String] Array(xmlElementNode, xmlElementNode, xmlElementNode, ...) 获取当前节点下xPath匹配的所有元素
属性 Get getChilds() - Array(xmlElementNode, xmlElementNode, xmlElementNode, ...) 获取当前实例下第一级元素子节点实例
属性 Get toJson(byVal method)

method [0|1]

method = 0 表示仅将节点值转换成JSON实例

method = 1 表示包括节点一起转换成JSON实例

[JSON] 将当前节点转换成json格式数据
属性 Get toJsonString(byVal method) 

method [0|1]

method = 0 表示转换成字符串时不包含根节点信息

method = 1 表示连同根节点信息一并转换成字符串

[String]

将当前节点转换成json字符串

1、属性转换采用:  "@attrName" = "attrVaule"

2、混合XML结构时,文本转换采用: "#text" = "text",比如:

<sample long="100">1234</sample> 转换结果:{ "sample":{ "@long" : 100, "#text" : 1234 }}

3、忽略注释节点,将文本节点与CDATA合并,用\n分隔,比如:

<sample><title>123456<!--这是一个注释-->abc</title></sample>

转换结果:

{ "sample":{ "title" : "123456\nabc" } }

4、同名元素(不区分大小写)子节点,转换成数组,键名强制变成小写,比如:

<dl><dd>星期一</dd><dd>星期二</dd><dd>星期三</dd></dl>

转换结果:

{ "dl" : { "dd" : ["星期一", "星期二", "星期三"] } }

属性 [obj].html = [xmlString] - 用一个XML格式字符串设置当前节点内容 
属性 [obj].name = [String]  重命名当前节点名称 
属性 [obj].text = [String]  设置当前节点的内容 
属性 [obj].attr("[attrName]") = [attrValue]  添加或修改节点属性值
过程 Sub init(byVal param) param [String] xml格式字符串,或者xml文件路径 - 用XML字符串或者XML文件来初始化节点实例
过程 Sub initNode(byVal docIndex, byVal xPath)

docIndex [Number] 当前实例位于全局变量public_array_xmlDoc的索引值

xPath [xPath] 当前实例位于XML文档中的路径

- 初始化当前节点实例
过程 Sub removeAttr(byVal attrName)  attrName [String] 属性名称 - 移除节点属性
过程 Sub removeAllAttr()  移除节点所有属性 
过程 Sub appendAttr(byVal attrObj)  attrObj [IXMLDOMElement] XML原生态元素节点实例 - 用xml_Class.createAttr(byVal attrName, byVal attrValue)创建的属性对象添加新属性
过程 Sub remove()  - 将当前节点从对应的xmlDoc中移除 
过程 Sub removeChild(byVal xPath)  xPath [String]  移除xPath匹配的第一个元素节点 
过程 Sub removeChilds(byVal xPath) xPath [String]  - 移除xPath匹配的所有元素节点
过程 Sub append(byVal xmlString) 

xmlString [String]

xmlString有两种形式:

1) 含有根节点的xml字符串:    此时追加成功之后,后面的操作不影响,格式:<a>aaaaa</a>

2) 不含根节点的xml字符串:   由于采用html追加方式,所以后面的操作会受到影响: 格式: <a>1</a><a>2</a>

- 在当前节点下追加xml内容
过程 Sub insertBefore(byVal xmlString) 

xmlString [String]

在当前节点前插入xml字符串内容(根节点前插入时不提示出错,但插入不成功!)
过程 Sub insertLater(byVal xmlString)  xmlString [String] 在当前节点后插入xml字符串内容(根节点前插入时不提示出错,但插入不成功!)
过程 Sub reSet(byVal xmlString)  xmlString [String] - 重置当前节点结构,包括当前节点名称、属性、子节点。
过程 Sub save(byVal path) path [String] 保存相对路径 - 将当前节点保存到文件内

【xml_Class、xmlElementNode_Class 类】使用说明的更多相关文章

  1. ThreadLocal类使用说明

      ThreadLocal类用于创建一个线程本地变量   在Thread中有一个成员变量ThreadLocals,该变量的类型是ThreadLocalMap,也就是一个Map,它的键是threadLo ...

  2. RandomAccessFile类使用说明

    RandomAccessFile类是Java Io体系中功能最为丰富的文件访问类,它提供了众多的文件访问方法.RandomAccessFile类支持“随机访问”方式,这里的“随机”是指程序可以直接跳到 ...

  3. paip.java c++得到当前类,方法名称以及行号

    paip.java c++得到当前类,方法名称以及行号 作者Attilax 艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn ...

  4. [php基础]PHP Form表单验证:PHP form validator使用说明

    在PHP网站开发建设中,用户注册.留言是必不可少的功能,用户提交的信息数据都是通过Form表单提交,为了保证数据的完整性.安全性,PHP Form表单验证是过滤数据的首要环节,PHP对表单提交数据的验 ...

  5. MSDN官方XmlSerializer类导致内存泄漏和性能低

    MSDN官方XmlSerializer类使用说明链接: http://msdn.microsoft.com/zh-CN/library/system.xml.serialization.xmlseri ...

  6. 【Java基础】枚举类与注解

    枚举类与注解 枚举类的使用 当需要定义一组常量时,强烈建议使用枚举类. 枚举类的理解:类的对象只有有限个,确定的. 若枚举只有一个对象, 则可以作为一种单例模式的实现方式. 枚举类的属性: 枚举类对象 ...

  7. Java类的继承与多态特性-入门笔记

    相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...

  8. 【PHP高效搜索专题(1)】sphinx&Coreseek的介绍与安装

    我们已经知道mysql中带有"%keyword%"条件的sql是不走索引的,而不走索引的sql在大数据量+大并发量的时候,不仅效率极慢还很有可能让数据库崩溃.那我们如何通过某些关键 ...

  9. java 获取随机数的三种方法

    方法1(数据类型)(最小值+Math.random()*(最大值-最小值+1))例:(int)(1+Math.random()*(10-1+1))从1到10的int型随数 方法2获得随机数for (i ...

随机推荐

  1. 通讯协议(三)Protocol Buffers协议

    Protocol Buffers是Google开发一种数据描述语言,能够将结构化数据序列化,可用于数据存储.通信协议等方面. 不了解Protocol Buffers的同学可以把它理解为更快.更简单.更 ...

  2. Luogu_2774 方格取数问题

    Luogu_2774 方格取数问题 二分图最小割 第一次做这种题,对于某些强烈暗示性的条件并没有理解到. 也就是每一立刻理解到是这个图是二分图. 为什么? 横纵坐标为奇数的只会和横纵坐标为偶数的相连. ...

  3. Filters in ASP.NET Core (转自MSDN)

    Filters in ASP.NET Core MVC allow you to run code before or after specific stages in the request pro ...

  4. 为何.NET Core控制台项目发布后是一个dll文件,而不是exe文件?

    项目中有一个.NET Core控制台项目叫ConsoleCoreApp,写好代码后准备发布: 结果发布后生成的是一个dll文件...为不是一个exe的可执行文件: 后来了解到.NET Core的项目分 ...

  5. 【Javascript-基础-ecma6】ecma6学习笔记(持续更新)

    makdown语法手册API String 新特性的方法 基本不支持IE浏览器 String.fromCodePoint(6特性) String.prototype.codePointAt(6特性) ...

  6. MySQL->AUTO_INCREMENT[20180516]

    MySQL表格中自增长主键AUTO_INCREMENT使用,实现序列的最简单的方式   创建一个AUTO_INCREMENT自增的表 mysql> create table seq_test( ...

  7. Windows 安装 MySQL 8.0.11

    下载并解压 从官方网站下载最新安装包 解压到目标安装目录 新建配置文件 在安装目录新建my.ini文件 添加如下内容(需修改为自己的配置) #----------------------------- ...

  8. python的requests模块爬取网页内容

    注意:处理需要用户名密码认证的网站,需要auth字段. # -*- coding:utf-8 -*- import requests headers = { "User-Agent" ...

  9. VS Code 的常用快捷键及插件(前端)

    一.vs code 的常用快捷键 1.注释: a) 单行注释:[ctrl+k,ctrl+c] 或 ctrl+/ b) 取消单行注释:[ctrl+k,ctrl+u] (按下ctrl不放,再按k + u) ...

  10. Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first.

    最近在开发一个网站时,有个需要是 如果有新预警信息要在网页中播放提示音.页面打开会请求是否有新信息,有则播放提示音.在Chrome的最新浏览器中,播放会报错,控制台显示Uncaught (in pro ...