如何在VBA Excel 2003中parsingXML?

我想通过VBAparsing一个通用的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 

根据您的评论指定更新的问题:

你不能像这样在VBA中实例化对象,在Dim语句中有一个参数。 尝试:

 Dim gReader As XmlTextReader gReader = New XmlTextReader 

另外,我build议你在这里阅读XmlTextReader文档:

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

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

编辑:据我粗略的互联网search可以告诉, XmlTextReader是为.NET实现,但不是为VBA。

您可能要考虑使用DOM而不是XmlTextReader 。 我发现DOM相对容易使用。 缺点是非常大的XML文件是低效的。 除非你正在处理大文件,否则DOM应该适合你。

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