Ich verwende eine GET-Anfrage, um eine XML-Antwort von einem Webdienst zu erhalten. Ich versuche, die Antwort zu analysieren und einen Teil davon in einem VBA-Formular anzuzeigen. Die VBA-Komponenten habe ich im Griff, aber die XML-Syntax bereitet mir einige Probleme. Bisher habe ich folgendes in VBA:
Sub GetCANSIM()
Dim XMLRequest As New XMLHTTP
Dim objXML As MSXML2.DOMDocument
Dim point As IXMLDOMNode
Dim value As Variant
Dim lngYear As Long
Set objXML = New MSXML2.DOMDocument
XMLRequest.Open "GET", "someURL", False
XMLRequest.send
While XMLRequest.Status <> 200
DoEvents
Wend
If Not objXML.LoadXML(XMLRequest.responseText) Then
Err.Raise objXML.parseError.ErrorCode, , objXML.parseError.reason
End If
End Sub
Ich verwende das Microsoft XML V6.0-Referenz.
Die XML-Antwort ist ziemlich groß, aber dies ist ihr Format:
462
2006-06-01T00:00:00-04:00
2006
6
0.0469
0.0518
0.0581
0.0458
0.0467
0.019
0.0318
0.026425
0.0328
4632006-07-01T00:00:00-04:0020067
0.0446
0.0496
0.056
0.0431
0.0445
0.018
0.0318
0.027216666667
0.0328
Ich möchte die letzten 60 Monate des "B14045"-Wertes und das "Rolling12MonthAvg" für den 12. Monat der letzten 5 Jahre abrufen.
Die Werte sind alle in Reihenfolge, daher denke ich, dass ich den Startmonat (vor 60 Monaten) finden oder anspringen kann, indem ich die "Month" und "Year"-Attribute verwende und dann den B14045-Wert in einer inkrementellen Schleife lese.
Aber ich kenne die Syntax nicht zum Finden des gewünschten Knotens (?) und dann zum Inkrementieren nach vorne. Ich habe versucht, einige Hilfe-Dateien und andere Themen zu lesen, aber ich kann einfach nicht dahinterkommen. Jede Hilfe wäre sehr geschätzt.