Dim strXML As String Dim xmlDocument As New DOMDocument Dim root As IXMLDOMElement Dim result As IXMLDOMElement Dim adoRecordset As New ADODB.Recordset xmlDocument.loadXML (strXML) Set root = xmlDocument.documentElement Dim i As Integer For i = 0 To root.firstChild.childNodes.length - 1 adoRecordset.Fields.Append root.firstChild.childNodes(i).nodeName, _ adVariant, _ adFldMayBeNull, _ adFldIsNullable + adFldUpdatable Next i
adoRecordset.Open
For Each result In root.selectNodes("./result") adoRecordset.AddNew For i = 0 To root.firstChild.childNodes.length - 1 adoRecordset.Fields(i).Value = result.childNodes(i).Text Next i Next
Set MSHFlexGrid1.DataSource = adoRecordset adoRecordset.Close Set adoRecordset = Nothing
特别是单步执行的时候,到For Each result In root.selectNodes("./result")里就跳出来了。
Dim xmlDocument As New DOMDocument
Dim root As IXMLDOMElement
Dim result As IXMLDOMElement
Dim adoRecordset As New ADODB.Recordset xmlDocument.loadXML (strXML)
Set root = xmlDocument.documentElement
Dim i As Integer
For i = 0 To root.firstChild.childNodes.length - 1
adoRecordset.Fields.Append root.firstChild.childNodes(i).nodeName, _
adVariant, _
adFldMayBeNull, _
adFldIsNullable + adFldUpdatable
Next i
adoRecordset.Open
For Each result In root.selectNodes("./result")
adoRecordset.AddNew
For i = 0 To root.firstChild.childNodes.length - 1
adoRecordset.Fields(i).Value = result.childNodes(i).Text
Next i
Next
Set MSHFlexGrid1.DataSource = adoRecordset
adoRecordset.Close
Set adoRecordset = Nothing