Senden Sie XML mit XMLHTTP

Inhaltsverzeichnis

Ich habe ein einfaches Skript zum Senden eines XML-Strings oder einer XML-Datei an einen Webserver mit Excel VBA und ein einfaches PHP-Skript zum Empfangen der Daten zusammengestellt. Der Prozess verwendet XMLHTTP.

Das Ziel besteht darin, ein einfaches Upload-Skript zu erstellen, um einen Server mit XML-Daten zu aktualisieren, die aus einer Tabelle erstellt wurden. Lassen Sie dann mehrere Endbenutzer-Arbeitsmappen der zentralen Datei zuordnen und erstellen Sie daraus Berichte. Die grundlegenden Schrauben und Muttern:

Für das Beispiel verwende ich einen einfachen XML-String, der wie folgt aussieht:

1234567891011 myxml = "<?xml version=""1.0""?>" & _"" & _"Herren-Polo" & _"4,89" & _"groß" & _""

Das von mir verwendete PHP gibt einfach die Daten zurück, die es an Excel gesendet hat. Wenn Sie also dieselben XML-Daten erhalten, die Sie in einer Nachrichtenbox gesendet haben, haben Sie es richtig gemacht. Wenn keine Beitragsdaten gefunden werden, heißt es „keine Würfel“. Der Speicherort der Test-URL ist /pl/xlxml.php

Natürlich möchten Sie das Skript aktualisieren, um den Dateiinhalt für praktische Zwecke auf Ihrem Server zu speichern. Hier ist das PHP, um die XML-Postdaten zu empfangen und zurückzugeben:

1234567891011121314151617

Damit wir jetzt wissen, was wir senden und wie wir es empfangen, senden wir die XML-Daten!

Der folgende Code wurde in Excel 2003 erstellt und verwendet einen Verweis auf Tools->References->Microsoft XML v5.0 im VB-Editor. Es ist gut kommentiert, damit Sie alles sehen können, was vor sich geht:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 Sub SendXML()'HTTP-VariableDim myHTTP als MSXML2.XMLHTTP'HTTP-ObjektSet myHTTP = CreateObject("msxml2.xmlhttp")'Dom-Dokumentvariable erstellen'speichert die zu sendende XMLDim myDom als MSXML2.DOMDocument'DomDocument-Objekt erstellenSet myDom = CreateObject("MSXML2.DOMDocument")'Gesamtes Dokument laden, bevor Sie fortfahrenmyDom.async = False'xml-String-Variable'durch Standort ersetzen, wenn von einer Datei oder URL gesendet wirdDim myxml als Stringmyxml = "<?xml version=""1.0""?>" & _"" & _"Herren-Polo" & _"4,89" & _"groß" & _""'lädt die xml'ändern Sie zu .Load for file or urlmyDom.loadXML (myxml)'öffne die VerbindungmyHTTP.Open "Beitrag", _"https://www.automateexcel.com/excel/pl/xlxml.php", Falsch'XML sendenmyHTTP.Send (myDom.XML)'Antwort anzeigenMsgBox myHTTP.ResponseTextEnd Sub

Wenn Sie es bis hierher geschafft, eine Referenz hinzugefügt und den Code ausgeführt haben, werden Sie sehen, dass PHP tatsächlich das XML empfangen und zurückgegeben hat:

Hinweise: Ich habe das XML nur dynamisch erstellt oder aus XML-Dateien und URLs geladen, als nächstes möchte ich Daten aus einer XML-Map senden.

Ich habe die Daten an Excel zurückgesendet, anstatt sie auf den Server zu schreiben, da die URL öffentlich ist. Ich wollte den Leuten eine Sandbox geben und keine zufälligen Dateien an meinen Server senden.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave