站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

excelXML文檔 XML文檔元素的遍歷、添加和刪除操作的方法

excelXML文檔 XML文檔元素的遍歷、添加和刪除操作的方法,【excel助手】今天為大家分享一篇干貨知識(shí),如何設(shè)置excelXML文檔countif函數(shù)查重復(fù)excelXML文檔 XML文檔元素的遍歷、添加和刪除操作的方法”快跟著小編來(lái)看看這一干貨文章吧!

借助于DOM對(duì)象,在Excel中,用戶可以編寫(xiě)VBA程序方便地對(duì)XML文件進(jìn)行讀取、遍歷、修改以及刪除等操作。本文分別介紹XML文檔元素的遍歷、添加和刪除操作的方法。

1、啟動(dòng)Excel并創(chuàng)建一個(gè)新文檔,打開(kāi)Visual Basic編輯器,創(chuàng)建一個(gè)模塊,在模塊的“代碼”窗口中輸入如下代碼。按F5鍵運(yùn)行程序代碼,在“立即窗口”中顯示XML文檔數(shù)據(jù),如圖1所示。

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&"學(xué)生信息.xml" '加載XML數(shù)據(jù)文檔

Set nodeList=xmldoc.getElementsByTagName("學(xué)生信息") '獲取學(xué)生信息節(jié)點(diǎn)序列

For Each node In nodeList '遍歷節(jié)點(diǎn)序列中所有節(jié)點(diǎn)

Debug.Print node.XML '輸出當(dāng)前節(jié)點(diǎn)的XML字符串

Next

Set node=Nothing

Set nodeList=Nothing

Set xmldoc=Nothing

End Sub

excelXML文檔 XML文檔元素的遍歷、添加和刪除操作的方法

圖1 在“立即窗口”中顯示XML文檔數(shù)據(jù)

2、在“代碼”窗口中繼續(xù)輸入如下程序代碼。運(yùn)行程序代碼,在“立即窗口”中可以看到程序運(yùn)行的結(jié)果。此時(shí),學(xué)生信息節(jié)點(diǎn)都添加了“入學(xué)日期”節(jié)點(diǎn)項(xiàng),如圖2所示。程序在當(dāng)前Excel文檔相同的文件夾中生成名為“學(xué)生信息New.xml”的文件,其中學(xué)生信息的節(jié)點(diǎn)添加了相應(yīng)的“入學(xué)日期”節(jié)點(diǎn)項(xiàng),并且這些節(jié)點(diǎn)都以當(dāng)前時(shí)間作為初始設(shè)置數(shù)據(jù),如圖3所示。

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&"學(xué)生信息.xml" '加載XML數(shù)據(jù)文檔

Set rootNode=xmldoc.DocumentElement '獲取文檔根節(jié)點(diǎn)

For Each node In rootNode.ChildNodes '遍歷根節(jié)點(diǎn)所有學(xué)生信息子節(jié)點(diǎn)

Set newNode=xmldoc.createElement("入學(xué)日期") '創(chuàng)建"入學(xué)日期"元素節(jié)點(diǎn)

Set rtnnode=node.appendChild(newNode) '將新節(jié)點(diǎn)插入到當(dāng)前學(xué)生信息節(jié)點(diǎn)

rtnnode.Text=Format(Now,"yyyy-mm-dd") '設(shè)置當(dāng)前插入節(jié)點(diǎn)的文本信息

Debug.Print node.XML '輸出當(dāng)前學(xué)生信息節(jié)點(diǎn)的XML字符串

Next

On Error Resume Next

Kill ThisWorkbook.Path&"學(xué)生信息New.xml" '刪除臨時(shí)文檔

On Error GoTo 0

xmldoc.Save ThisWorkbook.Path&"學(xué)生信息New.xml" '保存XML文檔

Set node=Nothing

Set xmldoc=Nothing

End Sub

excelXML文檔 XML文檔元素的遍歷、添加和刪除操作的方法

圖2 “立即窗口”中顯示的程序運(yùn)行結(jié)果

excelXML文檔 XML文檔元素的遍歷、添加和刪除操作的方法

圖3 XML文檔中添加了新的節(jié)點(diǎn)項(xiàng)

提示

程序使用For…Each In結(jié)構(gòu)遍歷XML文檔的所有節(jié)點(diǎn),使用節(jié)點(diǎn)對(duì)象的AppendChild方法來(lái)實(shí)現(xiàn)節(jié)點(diǎn)的添加。在默認(rèn)情況下,AppendChild方法將新建立的節(jié)點(diǎn)插入到父節(jié)點(diǎn)中最后一個(gè)子節(jié)點(diǎn)之后。如果需要將節(jié)點(diǎn)插入到其他節(jié)點(diǎn)之前,則需要使用InsertBefore方法。該方法除了接受節(jié)點(diǎn)對(duì)象參數(shù)外,還接受目標(biāo)節(jié)點(diǎn)對(duì)象,插入節(jié)點(diǎn)將位于該目標(biāo)節(jié)點(diǎn)之前。

3、在“代碼”窗口中輸入如下代碼。運(yùn)行程序代碼,在“立即窗口”中顯示程序運(yùn)行結(jié)果。這里,“入學(xué)日期”節(jié)點(diǎn)項(xiàng)已經(jīng)被移除,如圖4所示。打開(kāi)“學(xué)生信息New.xml”文件,可以查看到刪除XML文檔元素后的文檔內(nèi)容,如圖5所示。

Sub DeleteElement()

Dim xmldoc As DOMDocument

Dim node As IXMLDOMNode,rootNode As IXMLDOMNode

Set xmldoc=New DOMDocument

xmldoc.Load ThisWorkbook.Path&"學(xué)生信息New.xml" '加載XML數(shù)據(jù)文檔

Set rootNode=xmldoc.DocumentElement '獲取根節(jié)點(diǎn)

For Each node In rootNode.ChildNodes '遍歷所有"學(xué)生信息"

node.RemoveChild node.ChildNodes(node.ChildNodes.Length-1) '移除"入學(xué)日期"節(jié)點(diǎn)

Debug.Print node.XML '輸出節(jié)點(diǎn)的XML字符串

Next

On Error Resume Next

Kill ThisWorkbook.Path&"學(xué)生信息New.xml" '刪除臨時(shí)文檔

On Error GoTo 0

xmldoc.Save ThisWorkbook.Path&"學(xué)生信息New.xml" '重新保存文檔

Set node=Nothing

Set xmldoc=Nothing

End Sub

excelXML文檔 XML文檔元素的遍歷、添加和刪除操作的方法

圖4 “立即窗口”中顯示程序運(yùn)行結(jié)果

excelXML文檔 XML文檔元素的遍歷、添加和刪除操作的方法

圖5 XML文檔中的數(shù)據(jù)結(jié)構(gòu)

提示

程序中使用RemoveChild方法將“入學(xué)日期”節(jié)點(diǎn)項(xiàng)從XML文檔中移除。

贊(0)
分享到: 更多 (0)
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
亚洲国产精品免费在线观看| 精品麻豆国产色欲色欲色欲www| 精品久久久久久无码人妻| 国产手机在线精品| 亚洲a∨无码精品色午夜| 国产午夜精品理论片久久| 国产成人精品一区二区A片带套 | 久久精品中文字幕有码| 99久久国产亚洲综合精品| 在线成人精品国产区免费| 日产精品卡2卡三卡乱码网址| 亚洲精品天天影视综合网| 四虎亚洲国产成人久久精品| 亚洲色精品VR一区区三区 | 亚洲国产综合精品中文第一| 国产系列高清精品第一页| 日韩视频无码日韩视频又2021| 91精品国产一区二区三区左线 | 午夜精品久久久久久| 久久精品无码一区二区三区不卡| 日本精品久久久久中文字幕8| 日韩精品一区二区三区中文字幕 | 亚洲∧v久久久无码精品| 国产三级精品三级在线观看| 国产精品午夜高清在线观看| 3d动漫精品啪啪一区二区中文 | 国产国产精品人在线观看| jizz国产精品网站| 日韩人妻无码一区二区三区久久| 国产精品亚洲专区在线观看| 国产精品视频白浆免费视频 | 91精品视频在线免费观看| 久久99国产精品久久久| 日韩精品一区二区三区视频| 日韩AV在线不卡一区二区三区| 国产精品久久国产精品99盘| 99久久综合给久久精品| 久久99精品久久久久久| 国产亚洲精品无码拍拍拍色欲| chinese精品男同志浪小辉| 内射中出日韩无国产剧情|