我正在使用XML和VBA,我想知道,有没有办法直接从节点列表创建一个数组而不循环遍历节点列表并添加所有元素?我想这会大大提高速度。
答案 0 :(得分:1)
如果您的xml文件/数据属于表类型,则可以使用可以从xml文件创建的ADODB.Recordset
。接下来,您可以使用.GetRows method
从检索到的值创建数组。请遵循以下代码并在内部发表评论:
(对简单访问数据库/表进行了测试和测试)
访问中的表:
Sub ArrarFromXML()
'this code works for Access where test table tblTable was created
'required references to ActiveX library
'1. EXPORT
'create xml file by exporting table
Dim RS As New ADODB.Recordset
RS.Open "tblTable", CurrentProject.Connection
RS.Save "xmlFile.xml", adPersistXML
RS.Close
Set RS = Nothing
'2. IMPORT
'open file and save data in Recordset...
Set RS = New ADODB.Recordset
RS.Open "xmlFile.xml", "Provider=MSPersist;", adOpenForwardOnly, _
adLockReadOnly, adCmdFile
'3. ...export Recordset to Array
Dim myArray As Variant
myArray = RS.GetRows
Debug.Print myArray(0, 0)
End Sub
带有数组值的Locals窗口: