使用VBA将大型XML文件插入另一个文件

时间:2014-05-29 14:25:57

标签: xml excel vba

我已经使用VBA创建了一个xml文件,我还需要添加另一个4mb xml文件。有没有办法在excel中嵌入文件,然后使用VBA将其附加到创建的XML文件?

我需要将xml作为excel文件的一部分,以便需要附加的文件,以便程序始终可以找到它,以便其他使用它的人不需要找到其他文件

如果这不可能,有没有办法让用户浏览该文件,然后在

之前附加它
Print #1, "</Folder>"
Print #1, "</Document>"
Print #1, "</kml>"

Close #1

1 个答案:

答案 0 :(得分:2)

好的,所以我假设您有两个有效的XML文件,都有打开/关闭XML标记,并且您需要提取第二个文件的子节点(所有子节点,所以基本上用于打开/关闭XML标记的完整文件之外)并附加到第一个文件。

这是一个简单的示例,如果您需要在特定位置附加单个子节点,则需要根据需要添加逻辑/条件。

关闭两个文件。打开一个新工作簿并创建一个如下所示的vba过程:

Sub AppendXMLFiles()
'requires reference to Microsoft XML, v6.0'
'requires reference to Microsoft Scripting Runtime'
Dim file1 As New MSXML2.DomDocument
Dim file2 As New MSXML2.DomDocument
Dim appendNode As MSXML2.IXMLDOMNode
Dim fso As New Scripting.FileSystemObject

'## Load your xml files in to a DOM document'
file1.Load "c:\users\david_zemens\desktop\example xml file.xml"
file2.Load "c:\users\david_zemens\desktop\another xml file.xml"

'## iterate the childnodes of the second file, appending to the first file'
For Each appendNode In file2.DocumentElement.ChildNodes
    file1.DocumentElement.appendChild appendNode
Next

'## View the new XML in the immediate window'
Debug.Print file1.XML

'## Write the combined file to a NEW file'
'   note: if the specified filepath already exists, this will overwrite it'
fso.CreateTextFile("c:\users\david_zemens\desktop\combined xml file.xml", True, False).Write file1.XML

Set file1 = Nothing
Set file2 = Nothing
Set fso = Nothing
End Sub