excelXML文檔 XML文檔元素的遍歷、添加和刪除操作的方法,【excel助手】今天為大家分享一篇干貨知識,如何設置excelXML文檔countif函數查重復excelXML文檔 XML文檔元素的遍歷、添加和刪除操作的方法”快跟著小編來看看這一干貨文章吧!
借助于DOM對象,在Excel中,用戶可以編寫VBA程序方便地對XML文件進行讀取、遍歷、修改以及刪除等操作。本文分別介紹XML文檔元素的遍歷、添加和刪除操作的方法。
1、啟動Excel并創建一個新文檔,打開Visual Basic編輯器,創建一個模塊,在模塊的“代碼”窗口中輸入如下代碼。按F5鍵運行程序代碼,在“立即窗口”中顯示XML文檔數據,如圖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&"學生信息.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、在“代碼”窗口中繼續輸入如下程序代碼。運行程序代碼,在“立即窗口”中可以看到程序運行的結果。此時,學生信息節點都添加了“入學日期”節點項,如圖2所示。程序在當前Excel文檔相同的文件夾中生成名為“學生信息New.xml”的文件,其中學生信息的節點添加了相應的“入學日期”節點項,并且這些節點都以當前時間作為初始設置數據,如圖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&"學生信息.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方法將新建立的節點插入到父節點中最后一個子節點之后。如果需要將節點插入到其他節點之前,則需要使用InsertBefore方法。該方法除了接受節點對象參數外,還接受目標節點對象,插入節點將位于該目標節點之前。
3、在“代碼”窗口中輸入如下代碼。運行程序代碼,在“立即窗口”中顯示程序運行結果。這里,“入學日期”節點項已經被移除,如圖4所示。打開“學生信息New.xml”文件,可以查看到刪除XML文檔元素后的文檔內容,如圖5所示。
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文檔中移除。
站長資訊網