使用VBA将XML数据导入到excel中,selectnodes不起作用(不返回任何内容)

我有以下的XML

<cqresponse xmlns="http://ibm.com/rational/cqweb/v7.1"> <rows> <row> <id> <![CDATA[ ABC00082474 ]]> </id> <Short_Desc> <![CDATA[ Some Description 1 ]]> </Short_Desc> <State> <![CDATA[ Some State 1 ]]> </State> </row> <row> <id> <![CDATA[ ABC00082475 ]]> </id> <Short_Desc> <![CDATA[ Some Description 2 ]]> </Short_Desc> <State> <![CDATA[ Some State 2 ]]> </State> </row> </rows> </cqresponse> 

我想用VB脚本将它导入到Excel中。 我有下面的代码,但SelectNodes没有返回任何东西。 它只是返回Nothing

 Sub Test() Dim nodeList As IXMLDOMNodeList Dim nodeRow As IXMLDOMNode Dim nodeCell As IXMLDOMNode Dim rowCount As Integer Dim cellCount As Integer Dim rowRange As Range Dim cellRange As Range Dim sheet As Worksheet Dim xpathToExtractRow As String Dim dom As DOMDocument60 xpathToExtractRow = "/cqresponse/rows/row" Set dom = New DOMDocument60 dom.Load ("C:\ABC.xml") ' this file contains the same xml data as mentioned above Set sheet = ActiveSheet Set nodeList = dom.SelectNodes(xpathToExtractRow) rowCount = 0 For Each nodeRow In nodeList rowCount = rowCount + 1 cellCount = 0 For Each nodeCell In nodeRow.ChildNodes cellCount = cellCount + 1 Set cellRange = sheet.Cells(rowCount, cellCount) cellRange.Value = nodeCell.Text Next nodeCell Next nodeRow End Sub 

这里有什么不对吗,还是需要采取不同的方法?

XMLparsing常常犯的错误是根中未声明的名称空间。 因此,在分析文档时必须分配一个名称空间前缀,并在XPathexpression式中使用这样的前缀。 在下面, doc被分配:

 ... Dim xpathToExtractRow As String, XMLNamespaces As String Dim dom As DOMDocument60 xpathToExtractRow = "/doc:cqresponse/doc:rows/doc:row" XMLNamespaces = "xmlns:doc='http://ibm.com/rational/cqweb/v7.1'" Set dom = New DOMDocument60 dom.Load ("C:\ABC.xml") dom.setProperty "SelectionNamespaces", XMLNamespaces ...