XML文档元素的遍历、添加和删除操作的方法

借助于DOM对象,在Excel中,用户可以编写VBA程序方便地对XML文件进行读取、遍历、修改以及删除等操作。本文分别介绍XML文档元素的遍历、添加和删除操作的方法。

1、启动Excel并创建一个新文档,打开Visual Basic编辑器,创建一个模块,在模块的“代码”窗口中输入。

Sub GetXMLNode()

Dim xmldoc As DOMDocument

Dim nodeList As IXMLDOMNodeList

Dim node As IXMLDOMNode

Set xmldoc=New DOMDocument

xmldoc.async=False

xmldoc.Load ThisWorkbook.Path&"\学生信息.xml" '加载XML数据文档

Set nodeList=xmldoc.getElementsByTagName("学生信息") '获取学生信息节点序列

For Each node In nodeList '遍历节点序列中所有节点

Debug.Print node.XML '输出当前节点的XML字符串

Next

Set node=Nothing

Set nodeList=Nothing

Set xmldoc=Nothing

End Sub

图1 在“立即窗口”中显示XML文档数据

2、在“代码”窗口中继续输入。程序在当前Excel文档相同的文件夹中生成名为“学生信息New.xml”的文件,其中学生信息的节点添加了相应的“入学日期”节点项,并且这些节点都以当前时间作为初始设置数据,。

Sub AddElement()

Dim xmldoc As DOMDocument

Dim node As IXMLDOMNode

Dim rootNode As IXMLDOMNode

Dim newNode As IXMLDOMNode

Dim rtnnode As IXMLDOMNode

Set xmldoc=New DOMDocument

xmldoc.Load ThisWorkbook.Path&"\学生信息.xml" '加载XML数据文档

Set rootNode=xmldoc.DocumentElement '获取文档根节点

For Each node In rootNode.ChildNodes '遍历根节点所有学生信息子节点

Set newNode=xmldoc.createElement("入学日期") '创建"入学日期"元素节点

Set rtnnode=node.appendChild(newNode) '将新节点插入到当前学生信息节点

rtnnode.Text=Format(Now,"yyyy-mm-dd") '设置当前插入节点的文本信息

Debug.Print node.XML '输出当前学生信息节点的XML字符串

Next

On Error Resume Next

Kill ThisWorkbook.Path&"\学生信息New.xml" '删除临时文档

On Error GoTo 0

xmldoc.Save ThisWorkbook.Path&"\学生信息New.xml" '保存XML文档

Set node=Nothing

Set xmldoc=Nothing

End Sub

图2 “立即窗口”中显示的程序运行结果

图3 XML文档中添加了新的节点项

提示

程序使用For…Each In结构遍历XML文档的所有节点,使用节点对象的AppendChild方法来实现节点的添加。在默认情况下,AppendChild方法将新建立的节点插入到父节点中最后一个子节点之后。。打开“学生信息New.xml”文件,可以查看到删除XML文档元素后的文档内容,。

Sub DeleteElement()

Dim xmldoc As DOMDocument

Dim node As IXMLDOMNode,rootNode As IXMLDOMNode

Set xmldoc=New DOMDocument

xmldoc.Load ThisWorkbook.Path&"\学生信息New.xml" '加载XML数据文档

Set rootNode=xmldoc.DocumentElement '获取根节点

For Each node In rootNode.ChildNodes '遍历所有"学生信息"

node.RemoveChild node.ChildNodes(node.ChildNodes.Length-1) '移除"入学日期"节点

Debug.Print node.XML '输出节点的XML字符串

Next

On Error Resume Next

Kill ThisWorkbook.Path&"\学生信息New.xml" '删除临时文档

On Error GoTo 0

xmldoc.Save ThisWorkbook.Path&"\学生信息New.xml" '重新保存文档

Set node=Nothing

Set xmldoc=Nothing

End Sub

图4 “立即窗口”中显示程序运行结果

图5 XML文档中的数据结构

提示

程序中使用RemoveChild方法将“入学日期”节点项从XML文档中移除。

office办公软件入门基础教程 » XML文档元素的遍历、添加和删除操作的方法

本文链接:【XML文档元素的遍历、添加和删除操作的方法】https://www.officeapi.cn/12681.html

OFFICE,天天学一点,进步多一点

联系我们