2016-10-07 7 views
0

Ich bin etwas XML von Ebay anfordern, aber das zurückgegebene XML ist zu lang für VBA Debug-Fenster, daher muss ich die zurückgegebene XML in eine Datei dump - ein N00b & greifen dunkel, könnte ich mit jemandem aushelfen, der mir mit der richtigen Syntax aus dem Inhalt der XMLHttpRequest.responseXML.XML & in eine Datei einfügen. Hier ist der Code Ich habe (was alles funktioniert - ich brauche nur die Zeile in eine Datei zu schreiben)Dumping XML von HttpRequest in eine Textdatei

Dim fso As Object 
Set fso = CreateObject("Scripting.FileSystemObject") 
Dim oFile As Object 
Set oFile = fso.CreateTextFile("Z:\AccessData\Temp.xml")  

XMLHttpRequest.send (body) 
objxmldoc.loadXML (XMLHttpRequest.responseXML.XML) 
Debug.Print XMLHttpRequest.responseXML.XML ' valid XML showing at this point 

Antwort

0

Sie müssen nicht analysieren objxmldoc.loadXML (XMLHttpRequest.responseXML.XML) als XMLHttpRequest.responseXML bereits ein DOM-Dokument ist und natürlich, wenn Sie benötigen Speichern Sie es in eine Datei alles, was Sie brauchen, rufen Sie die save Methode, wie in XMLHttpRequest.responseXML.save("result.xml") (Ich bin nicht wirklich ein VBA-Typ so derzeit nicht sicher, ob XMLHttpRequest.responseXML.save "result.xml" ist die richtige Syntax, aber Aufruf der save Methode ist, was Sie brauchen).

+0

Danke, eigentlich hast du mir einen guten Vorsprung gegeben, was zu einer Art Lösung für mich geführt hat. Ich konnte die richtige Syntax zum Speichern von XMLHttpRequest.responseXML.XML nicht finden, aber diese beiden gleichzeitigen Befehle erledigen den Job ... objxmldoc.loadXML (XMLHttpRequest.responseXML.XML) objxmldoc.Save "Z: \ temp.xml" – peskywinnets

+0

Rufen Sie einfach die Methode 'save' auf der' responseXML' auf, es ist absolut nicht notwendig, zuerst 'responseXML.xml' mit' loadXML' zu parsen. Also sollte 'XMLHttpRequest.responseXML.save "Z: \ temp.xml" 'ausreichen und viel besser funktionieren als zuerst auf' .xml' zu gehen, dann das mit '.loadXML' analysieren und dann' .save' zurückgeben. –

+0

Der Parsing-Eintrag wird für den Rest des Codes benötigt (nicht für das Speichern der Datei) – peskywinnets

1

Möchten Sie Daten in einer Datei speichern? Dann wird dies tun. Übergeben Sie das XML als Zeichenfolge an eine Datei.

Sub your_function() 

Dim fso As Object 
Set fso = CreateObject("Scripting.FileSystemObject") 
Dim oFile As Object 
Set oFile = fso.CreateTextFile("Z:\AccessData\Temp.xml") 

Dim sResult as String 
XMLHttpRequest.send (body) 
sResult = XMLHttpRequest.responseText() 
SaveToFile "d:\AccessData\Temp.xml", sResult 

End Sub 

Sub SaveToFile(sFileName, sContent) 
    'Saves a string to a file and closes the file 
    ' sample usage: SaveToFile "d:\test.txt", "test" 
    Dim fs As Object 
    Dim file As Object 
    Set fs = CreateObject("Scripting.FileSystemObject") 
    Set file = fs.CreateTextFile(sFileName, True) 
    file.WriteLine (sContent) 
    file.Close 
End Sub 
+0

Das funktioniert für mich :-) Danke. – peskywinnets

+0

Können Sie es als richtige Antwort upvote. – KannanRG