追加孩子節點別處以下VBA代碼需要一個XML文件,並附加在文檔中的特定節點到其他節點:在XML文檔
Dim xmlFilePath$, newFilePath$
Dim DOM As MSXML2.DOMDocument
Dim Node As IXMLDOMNode
Dim fso As Scripting.FileSystemObject
Dim itm As IXMLDOMNode
xmlfilepath = "Path"
newfilepath = "Path_2"
Set DOM = CreateObject("MSXML2.DOMDocument.6.0")
DOM.Load xmlFilePath
For Each Node In DOM.DocumentElement.getElementsByTagName("Tag")
For Each itm In Node.ParentNode.NextSibling.ChildNodes
itm.appendChild Node.CloneNode(True)
Next
Next
Set fso = CreateObject("Scripting.FileSystemObject")
Set DOM = Nothing
Set fso = Nothing
Set Node = Nothing
End Sub
此代碼書面完美的罰款。但是,如果循環
For Each Node In DOM.DocumentElement.getElementsByTagName("Tag")
For Each itm In Node.ParentNode.NextSibling.ChildNodes
itm.appendChild Node.CloneNode(True)
Next
Next
改爲
For Each Node In DOM.DocumentElement.getElementsByTagName("Tag")
For Each itm In Node.ParentNode.ParentNode
itm.appendChild Node.CloneNode(True)
Next
Next
我收到 '所需的對象' 的錯誤。如果我改爲使用Node.ParentNode.ParentNode.ChildNodes
,則不會收到任何錯誤,但我試圖追加的節點會放置在已存在的子節點中,以便結果類似於<a>Example<b>More_Writing</b></a>
。
有沒有辦法讓路徑Node.ParentNode.ParentNode
被接受爲有效,還是我應該以不同的方式接近?
感謝蒂姆,這解決了錯誤,但由於某種原因,實際並沒有任何附加給文檔與替代。 – 114
創建一個變量,您可以爲其分配'Node.ParentNode.ParentNode',然後添加一個Watch並做一些調試 - 您期望的是什麼?如果沒有示例XML,很難確切地說出發生了什麼。 –