Excel导入特定于XML的节点

Excel导入特定于XML的节点,xml,excel,Xml,Excel,我尝试将一些特定的XML节点导入Excel 2010。但是我有一些错误。我想用XML节点“Item”中的内容创建一个表,以便于阅读。但是有一些问题,错误是后来定义的,我不经常使用XML。我的另一个想法是创建一个RegEx来导入节点,但我认为这不是一个好方法,因为其中一些数据可能非常庞大,而且我认为使用RegEx会很慢 如果有任何想法能让我的剧本发挥作用,我将不胜感激 代码如下: Sub read_XML() Dim objXML As Object, ListNode As Object, oN

我尝试将一些特定的XML节点导入Excel 2010。但是我有一些错误。我想用XML节点“Item”中的内容创建一个表,以便于阅读。但是有一些问题,错误是后来定义的,我不经常使用XML。我的另一个想法是创建一个RegEx来导入节点,但我认为这不是一个好方法,因为其中一些数据可能非常庞大,而且我认为使用RegEx会很慢

如果有任何想法能让我的剧本发挥作用,我将不胜感激

代码如下:

Sub read_XML()
Dim objXML As Object, ListNode As Object, oNode As Object
Dim sPath$
Dim rng As Range
Dim nRow&, nCol&

ChDrive ThisWorkbook.Path
ChDir ThisWorkbook.Path

sPath = Application.GetOpenFilename("XML-File (*.xml), *.xml")
If sPath = CStr(False) Then Exit Sub

With Tabelle1
Set rng = .Range("A:J")
rng.Rows(2).Resize(.Rows.Count - 1).Clear
End With

Set objXML = CreateObject("MSXML2.DOMDocument")


If objXML.Load(sPath) Then
Set ListNode = objXML.SelectNodes("/SAMPLESET/SUMMARY/ITEM") 'all ITEMs
nRow = 2 'first Row
For Each oNode In ListNode
    For nCol = 1 To rng.Columns.Count
        If Not oNode.SelectSingleNode(rng.Cells(1, nCol)) Is Nothing Then
            rng.Cells(nRow, nCol) = oNode.SelectSingleNode(rng.Cells(1,   nCol)).Text
        End If
    Next
    nRow = nRow + 1 'next Row
Next
End If
End Sub
错误如下:

Sub read_XML()
Dim objXML As Object, ListNode As Object, oNode As Object
Dim sPath$
Dim rng As Range
Dim nRow&, nCol&

ChDrive ThisWorkbook.Path
ChDir ThisWorkbook.Path

sPath = Application.GetOpenFilename("XML-File (*.xml), *.xml")
If sPath = CStr(False) Then Exit Sub

With Tabelle1
Set rng = .Range("A:J")
rng.Rows(2).Resize(.Rows.Count - 1).Clear
End With

Set objXML = CreateObject("MSXML2.DOMDocument")


If objXML.Load(sPath) Then
Set ListNode = objXML.SelectNodes("/SAMPLESET/SUMMARY/ITEM") 'all ITEMs
nRow = 2 'first Row
For Each oNode In ListNode
    For nCol = 1 To rng.Columns.Count
        If Not oNode.SelectSingleNode(rng.Cells(1, nCol)) Is Nothing Then
            rng.Cells(nRow, nCol) = oNode.SelectSingleNode(rng.Cells(1,   nCol)).Text
        End If
    Next
    nRow = nRow + 1 'next Row
Next
End If
End Sub
表达式不返回节点

这里是XML:

Sub read_XML()
Dim objXML As Object, ListNode As Object, oNode As Object
Dim sPath$
Dim rng As Range
Dim nRow&, nCol&

ChDrive ThisWorkbook.Path
ChDir ThisWorkbook.Path

sPath = Application.GetOpenFilename("XML-File (*.xml), *.xml")
If sPath = CStr(False) Then Exit Sub

With Tabelle1
Set rng = .Range("A:J")
rng.Rows(2).Resize(.Rows.Count - 1).Clear
End With

Set objXML = CreateObject("MSXML2.DOMDocument")


If objXML.Load(sPath) Then
Set ListNode = objXML.SelectNodes("/SAMPLESET/SUMMARY/ITEM") 'all ITEMs
nRow = 2 'first Row
For Each oNode In ListNode
    For nCol = 1 To rng.Columns.Count
        If Not oNode.SelectSingleNode(rng.Cells(1, nCol)) Is Nothing Then
            rng.Cells(nRow, nCol) = oNode.SelectSingleNode(rng.Cells(1,   nCol)).Text
        End If
    Next
    nRow = nRow + 1 'next Row
Next
End If
End Sub

066
密索
1.
1701
强制CD
N
180
185
17
15
176
189
2.
181.2,176.0,189.0
3701
强制CD
N
380
385
37
35
376
389
2.
381.2,376.0,389.0

我怀疑问题出在单元格的内容上。对于
rng.Cells(1,nCol)
中的任何值,我们不知道在XML中搜索什么。请提供更多信息,并可能提供一个完整的示例。