excel - 使用 vba 从 XML 文件中提取数据到 MS excel
问题描述
嗨,我有一个来自 API 的 xml 响应,我想从 xml 文件中提取数据到 excel,但所有字段都在部分中。我是 XML 的初学者,我无法从部分中提取数据。我试图编写一些代码,但没有一个成功。
我写了一些代码,但它不起作用。
解决方案
您需要的数据是嵌入在响应 XML 的 CDATA 部分中的单独 XML 文档。
您需要提取 XML 并将其加载到第二个文档对象中,以便提取所需的数据。
例如:
Sub Test()
'Tools->References->Microsoft Xml v.60
Dim dom As MSXML2.DOMDocument60, childDoc As MSXML2.DOMDocument60
Dim recXML As String, rec, recs
Set dom = New MSXML2.DOMDocument60
Set childDoc = New MSXML2.DOMDocument60
dom.Load "C:\Users\Tim\OneDrive\Desktop\temp\response.xml"
'you need to set up the namespace property
dom.SetProperty "SelectionNamespaces", "xmlns:abc='http://www.isinet.com/xrpc42'"
Dim xmlSomeCData As MSXML2.IXMLDOMElement
'use the namspace alias we created earlier when querying
Set xmlSomeCData = dom.SelectSingleNode("abc:response/abc:map/abc:map/abc:val")
recXML = xmlSomeCData.Text '<<< the text in the CDATA section is the source XML
' to be loaded into ChildDoc
childDoc.LoadXML recXML
'select some nodes from the embedded xml document....
Set recs = childDoc.SelectNodes("//records/REC/UID")
Debug.Print recs.Length
For Each rec In recs
Debug.Print rec.Text
Next rec
End Sub
推荐阅读
- c++ - 为什么我不能从迭代器构造一个 std::span ?
- ios - 将 slowMo AVComposition 插入 AVMutableComposition
- java - Java 记录验证注解
- javascript - Discord Bot - MessageEmbed
- http - 可以在 Katalon 测试用例中编写 Groovy 服务器代码吗?
- javascript - Javascript更改网址onclick
- jquery - 如何迭代 Ajax 数据响应
- automation - lua语言更改导致ai脚本出错
- r - 如何读取 csv 文件并渲染 UI?
- javascript - Node.js:谷歌云存储凭证未在生产中加载