gpt4 book ai didi

xml - 如何在 VBA Excel 2003 中解析 XML?

转载 作者:行者123 更新时间:2023-12-03 02:14:19 26 4
gpt4 key购买 nike

我正在尝试通过 VBA 解析通用 XML 文件。我想用它做什么:提取 xml 节点的值,将它们写入 XML 文件并将其导出。

您是否知道有哪个库实际上可以让我一次读取一个节点,以便我可以使用易于理解的文档和一些示例(甚至是最小的示例)进行处理。

到目前为止:

Sub Go()

Dim xmlDoc As MSXML2.DOMDocument
Dim xmlElement As MSXML2.IXMLDOMElement
Dim xmlNode As MSXML2.IXMLDOMElement

Set xmlDoc = New MSXML2.DOMDocument
xmlDoc.Load ("E:\cdCatalog.xml")

Set xmlElement = xmlDoc.documentElement
Set xmlNode = xmlElement.FirstChild

parseNodes xmlElement, 1, 1
'parseNodes xmlNode, 1, 1

End Sub

Sub parseNodes(node As MSXML2.IXMLDOMElement, i As Integer, j As Integer)
Dim child As MSXML2.IXMLDOMNode

'result = node.baseName & " : " & node.Text
result = node.nodeName

Sheet1.Activate
' text if...
Cells(i, j) = result

j = j + 1
If (node.hasChildNodes) Then

For Each child In node.childNodes
i = i + 1
'MsgBox child.Text
MsgBox TypeName(node.childNodes)
parseNodes child, i, j
Next
End If

End Sub

最佳答案

解决评论中指定的更新问题:

您不能像这样在 Dim 语句中使用参数来实例化 VBA 中的对象。尝试:

Dim gReader As XmlTextReader
gReader = New XmlTextReader

此外,我建议您阅读此处的 XmlTextReader 文档:

http://msdn.microsoft.com/en-us/library/1af7xa52.aspx

这些示例说明了如何使用XmlTextReader

编辑: 据我粗略的互联网搜索所知,XmlTextReader 是为 .NET 实现的,但不是为 VBA 实现的。

您可能需要考虑使用 DOM 而不是 XmlTextReader。我发现 DOM 相对容易使用。缺点是对于非常大的 XML 文件效率很低。除非您正在操作大文件,否则 DOM 应该可以正常工作。

Dim xlmDoc As Object
Set xlmDoc = CreateObject("Msxml2.DOMDocument.6.0")
xmlDoc.Load fileName

关于xml - 如何在 VBA Excel 2003 中解析 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6010031/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com