excel - 需要使用 Excel vba 合并两个 xml 文件
问题描述
我需要在 Excel VBA 中合并两个 XML 文件。第二个 XML 文件应作为第一个 XML 的同级添加。还必须Union
在合并 XML 文件后创建一个。例如:
第一个 XML 文件:
<TupleList>
<Member FullPath="Latest : FOLDER Day Ending 06-16-2019"/>
</TupleList>
第二个 XML 文件:
<TupleList>
<Member FullPath="Latest : FOLDER Day Ending 06-17-2019"/>
</TupleList>
预期的输出 XML 文件:
<Union>
<TupleList>
<Member FullPath="Latest : FOLDER Day Ending 06-16-2019"/>
</TupleList>
<TupleList>
<Member FullPath="Latest : FOLDER Day Ending 06-17-2019"/>
</TupleList>
</Union>
我尝试了下面的代码,但它没有按预期工作
Set XOuter = CreateObject("MSXML2.DOMDocument")
Set XOuter1 = CreateObject("MSXML2.DOMDocument")
Dim appendNode As MSXML2.IXMLDOMNode
XOuter.Load ("C:\\blp\\1stXML.xml")
XOuter1.Load ("C:\\blp\\2ndXML.xml")
For Each appendNode In XOuter1.DocumentElement.ChildNodes
XOuter.DocumentElement.appendChild appendNode
Next
它以 Tuplelist 作为父级和 2 个成员作为子级提供输出。但我想要以高于预期的格式输出。
解决方案
这对我有用:
Dim inDoc As New MSXML2.DOMDocument60
Dim resultDoc As New MSXML2.DOMDocument60
Dim rt As Object, nd
Set rt = resultDoc.appendChild(resultDoc.createElement("Union"))
Debug.Print resultDoc.XML
''using loadXML here for convenience...
inDoc.LoadXML ("<TupleList><Member FullPath=""Latest : FOLDER Day Ending 06-16-2019""/></TupleList>")
Set nd = resultDoc.importNode(inDoc.DocumentElement, True)
rt.appendChild nd
inDoc.LoadXML ("<TupleList><Member FullPath=""Latest : FOLDER Day Ending 06-17-2019""/></TupleList>")
Set nd = resultDoc.importNode(inDoc.DocumentElement, True)
rt.appendChild nd
Debug.Print resultDoc.XML
推荐阅读
- firebase - Flutter - 在 firebase firestore 中获取当前用户的文档
- c# - 如何使用 ASP.NET Core MVC c# 生成 PDF 文档
- angular - 如何仅在使用 FormGroup 选择其中之一时才需要复选框
- javascript - 请帮助 致命错误:未捕获的错误:在 /antivirus_scan.php:1 中不在对象上下文中时使用 $this 堆栈跟踪:#0 {main} 抛出
- php - 需要一个与 gregoriantojd() 函数完成相同工作的函数
- google-cloud-platform - Google Cloud:将 BigQuery 结果作为 .csv 文件保存到 Google Drive 上的*特定*目录
- ruby-on-rails - Nginx 无法在两个服务器块之间进行代理传递
- excel - 从 VBA 代码工作,到代码没有变化,突然代码不起作用
- java - Kafka Streams 基于过滤器和聚合的批量数据处理问题
- javascript - GET 请求不在 json 内容类型烧瓶中