直接从XML nodelist创建数组而不通过nodelist循环?

时间:2015-02-23 18:43:47

标签: xml vba excel-vba excel

我正在使用XML和VBA,我想知道,有没有办法直接从节点列表创建一个数组而不循环遍历节点列表并添加所有元素?我想这会大大提高速度。

1 个答案:

答案 0 :(得分:1)

如果您的xml文件/数据属于表类型,则可以使用可以从xml文件创建的ADODB.Recordset。接下来,您可以使用.GetRows method从检索到的值创建数组。请遵循以下代码并在内部发表评论:

(对简单访问数据库/表进行了测试和测试)

访问中的表: enter image description here

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窗口: enter image description here