Извините, у меня сложилось впечатление, что мы перемещаемся по множеству неважных узлов только для того, чтобы добраться до тех, о которых вы заботились.
я есть большой 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