Excel导入特定于XML的节点
我尝试将一些特定的XML节点导入Excel 2010。但是我有一些错误。我想用XML节点“Item”中的内容创建一个表,以便于阅读。但是有一些问题,错误是后来定义的,我不经常使用XML。我的另一个想法是创建一个RegEx来导入节点,但我认为这不是一个好方法,因为其中一些数据可能非常庞大,而且我认为使用RegEx会很慢 如果有任何想法能让我的剧本发挥作用,我将不胜感激 代码如下: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
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中搜索什么。请提供更多信息,并可能提供一个完整的示例。