Мне пришлось провести собственный анализ, и через несколько часов я понял, что получить доступ к вашим данным с помощью одного XPath может быть сложно.
Причин может быть множество:
- Плохая структура XML
- Повторяющиеся метки
- и т. Д.
Я использовал комбинацию XPath и встроенных функций для получения моих данных. например,
strFile = "C:\MyFile.xml"
intFile = 2
Open strFile For Input As intFile
'Load XML into string strXML
While Not EOF(intFile)
Line Input #intFile, strXML
Wend
Close intFile
Dim XMLDOC As MSXML2.DOMDocument
Set objDOM = CreateObject("Msxml2.DOMDocument.6.0")
Dim xmlNodes As MSXML2.IXMLDOMNodeList
objDOM.LoadXML strXML
XPath = "/query/results"
Set xmlNode = objDOM.SelectNodes(XPath)
rowCounter = WorksheetFunction.CountA(output.Columns("A")) + 1
Set oNodes = objDOM.getElementsByTagName("quote")
If oNodes.Length > 0 Then
For Each oNode In oNodes
output.Cells(rowCounter, 1) = symbol
output.Cells(rowCounter, 2) = oNode.SelectSingleNode("Date").Text
output.Cells(rowCounter, 3) = oNode.SelectSingleNode("Open").Text
output.Cells(rowCounter, 4) = oNode.SelectSingleNode("High").Text
output.Cells(rowCounter, 5) = oNode.SelectSingleNode("Low").Text
output.Cells(rowCounter, 6) = oNode.SelectSingleNode("Close").Text
output.Cells(rowCounter, 7) = oNode.SelectSingleNode("Volume").Text
output.Cells(rowCounter, 8) = oNode.SelectSingleNode("Adj_Close").Text
rowCounter = rowCounter + 1
Next oNode
End If
Вы можете найти лист Excel в
мой блог .