XML-Datei in VBA laden erfolgt nur teilweise, XML-Knoten fehlt

  • Excel

    XML-Datei in VBA laden erfolgt nur teilweise, XML-Knoten fehlt

    Ich bin am Verzweifeln :(
    Wenn man die XML-Datei ("https://www.db-markets.com/dbmserver/portal/FxFixings/09-09-2015/USD.xml") im Browser (Chrome) öffnet. Dann sieht sie so aus:

    XML-Quellcode

    1. <Envelope>
    2. <Subject>Abrechnungskurse Devisen</Subject>
    3. <Sender>
    4. <Name>Deutsche Bank AG</Name>
    5. </Sender>
    6. <Cube>
    7. <Cube time="09.09.15">
    8. <Cube currency="USD" valuedate="11.09.15" ask="1.1181" bid="1.1121"/>
    9. </Cube>
    10. </Cube>
    11. </Envelope>


    Wenn ich sie dann manuell abspeichere, sieht sie genau so aus, wie ich sie dort im Browser angezeigt bekomme. Und wenn ich mit dieser manuell abgespeicherten Datei in meinem VBA-Makro weiterarbeite funktioniert auch alles und ich habe keine Probleme. Nun will ich diese Datei aber nicht abspeichern, sondern sie mit dem HTML-Link direkt im Code laden, was ja normalerweise auch kein Problem sein sollte. async ist auf false gestellt, doch trotzdem werden die XML-Informationen nicht vollständig geladen. Es fehlt dann immer der letzte Knoten mit den Attributen von Cube "currency", "valuedate" etc.

    Woran kann dies liegen? Ich habe schon versuch das Makro an der Stelle zu stoppen und dem Laden noch mehr Zeit zu geben, was allerdings Blödsinn ist, da dafür ja schon async = false sorgt und die Fehlerüberprüfung wird ja auch durchgeführt und meldet keine Fehler. Zur Kontrolle lasse ich das geladene XML-File nach der Fehlerüberprüfung abspeichern. Wenn ich diese abgespeicherte Version dann öffne, ist es in der Tat so, dass der Knoten fehlt. Auch wenn ich diese gespeicherte Datei im Browser öffne. Es wird also definitiv dieser letzte Knoten nicht mitgeladen. Ich verzweifel. Ich hoffe, es hat jemand einen entscheidenden Tipp für mich. Vielen Dank schonmal!

    Quellcode

    1. Const XMLDateiMitPfad As String = "https://www.db-markets.com/dbmserver/portal/FxFixings/09-09-2015/USD.xml"
    2. Private Sub XMLDateiAuslesen()
    3. Dim xmlDoc As New MSXML2.DOMDocument
    4. Dim xmlKnoten As MSXML2.IXMLDOMNode
    5. Dim xpathKnoten As String
    6. Dim xpathAttrib As String
    7. xmlDoc.async = False
    8. xmlDoc.validateOnParse = True ' Auf Fehler prüfen
    9. xmlDoc.Load (XMLDateiMitPfad) ' XML-Datei laden
    10. If xmlDoc.Load(XMLDateiMitPfad) = False Then
    11. MsgBox "XML-Datei: '" & XMLDateiMitPfad & "' wurde nicht gefunden"
    12. Exit Sub
    13. ElseIf xmlDoc.parseError = True Then
    14. MsgBox "XML-Datei: '" & XMLDateiMitPfad & "' hat fehlerhaften Aufbau (ist nicht 'wohlgeformt')"
    15. Exit Sub
    16. End If
    17. 'Zum Überprüfen des Inhalts, speichere ich die Datei ab
    18. xmlDoc.Save ("N:\testusd.xml")
    19. 'hier geht der Code noch weiter... (ist aber für das Problem nicht relevant)




    DAMN IT!
    Ich hab es selbst gelöst...

    Einfach im Link "https://www.db-markets.com/dbmserver/portal/FxFixings/09-09-2015/USD.xml" das .xml weglassen.

    Also so:
    db-markets.com/dbmserver/portal/FxFixings/09-09-2015/USD

    Nun sag mir doch bitte aber einer, wie das kommt?!?! Kann mir das nicht erklären...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Dennis81“ ()