Извините, у меня сложилось впечатление, что мы перемещаемся по множеству неважных узлов только для того, чтобы добраться до тех, о которых вы заботились.

я есть большой XML-файл, который нужно проанализировать в VBA (Excel 2003 и 2007). В XML-файле может быть более 11 000 «строк» ​​данных, причем каждая «строка» содержит от 10 до 20 «столбцов». Это в конечном итоге является огромной задачей, просто разобрать и получить данные (5-7 минут). Я попытался прочитать xml и поместить каждую «строку» в словарь (ключ = номер строки, значение = атрибуты строки), но это занимает столько же времени.

Это займет вечность, чтобы пересечь DOM. Есть ли более эффективный способ?

Dim XMLDict
    Sub ParseXML(ByRef RootNode As IXMLDOMNode)
        Dim Counter As Long
        Dim RowList As IXMLDOMNodeList
        Dim ColumnList As IXMLDOMNodeList
        Dim RowNode As IXMLDOMNode
        Dim ColumnNode As IXMLDOMNode
        Counter = 1
        Set RowList = RootNode.SelectNodes("Row")

        For Each RowNode In RowList
            Set ColumnList = RowNode.SelectNodes("Col")
            Dim NodeValues As String
            For Each ColumnNode In ColumnList
                NodeValues = NodeValues & "|" & ColumnNode.Attributes.getNamedItem("id").Text & ":" & ColumnNode.Text
            Next ColumnNode
            XMLDICT.Add Counter, NodeValues
            Counter = Counter + 1
        Next RowNode
    End Sub

Ответы на вопрос(2)

Ваш ответ на вопрос