Wyślij XML za pomocą XMLHTTP

Spisie treści

Stworzyłem podstawowy skrypt do wysyłania ciągu XML lub pliku na serwer WWW za pomocą Excel VBA i prosty skrypt PHP do odbierania danych. Proces wykorzystuje XMLHTTP.

Celem jest stworzenie prostego skryptu przesyłania, który aktualizuje serwer danymi XML utworzonymi z arkusza kalkulacyjnego. Następnie zmapuj wiele skoroszytów użytkowników końcowych do pliku centralnego i utwórz z niego raporty. Podstawowe nakrętki i śruby:

W przykładzie używam podstawowego ciągu XML, który wygląda tak:

1234567891011 myxml = "<?xml version=""1.0""?>" & _„” i _„męskie polo” i _„4.89” i _"duży" & _""

PHP, którego użyłem, po prostu zwraca dane, które zostały odesłane do Excela. Więc jeśli otrzymasz te same dane XML, które wysłałeś w skrzynce wiadomości, zrobiłeś to poprawnie. Jeśli nie zostaną znalezione żadne dane pocztowe, jest napisane „bez kości”. Lokalizacja testowego adresu URL to /pl/xlxml.php

Oczywiście będziesz chciał zaktualizować skrypt, aby zapisać zawartość pliku na serwerze do praktycznych zastosowań. Oto PHP do odbierania danych posta XML i zwracania ich:

1234567891011121314151617

Więc teraz wiemy, co wysyłamy i jak to odebrać, wyślijmy dane XML!

Poniższy kod został utworzony w programie Excel 2003 i przy użyciu odwołania do Narzędzia->Referencje->Microsoft XML v5.0 w edytorze VB. Jest dobrze komentowany, więc możesz zobaczyć wszystko, co się dzieje:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 Sub Wyślij XML()'Zmienna HTTP'Przyciemnij myHTTP jako MSXML2.XMLHTTP'Obiekt HTTPUstaw myHTTP = CreateObject("msxml2.xmlhttp")'utwórz zmienną dokumentu dom'przechowuje plik xml do wysłaniaPrzyciemnij mójDom jako MSXML2.DOMDocument'Utwórz obiekt DomDocumentUstaw mójDom = CreateObject("MSXML2.DOMDocument")'Załaduj cały dokument przed przejściem dalejmyDom.async = Fałsz'zmienna łańcuchowa xml'zamień lokalizację, jeśli wysyłasz z pliku lub adresu URLDim myxml jako ciągmyxml = "<?xml version=""1.0""?>" & _„” i _„męskie polo” i _„4.89” i _"duży" & _""'ładuje xml'zmień na .Load dla pliku lub adresu URLmyDom.loadXML (myxml)„otwórz połączenie”myHTTP.Otwórz "post", _"https://www.automateexcel.com/excel/pl/xlxml.php", Fałsz'wyślij XML'myHTTP.Send (myDom.XML)'Wyświetl odpowiedźMsgBox myHTTP.ResponseTextNapis końcowy

Jeśli dotarłeś tak daleko, dodałeś referencję i uruchomiłeś kod, zobaczysz, że rzeczywiście PHP odebrało i zwróciło XML:

Uwagi: XML stworzyłem tylko dynamicznie lub ładowałem go z plików XML i adresów URL, następnie wysyłam dane z mapy XML.

Przesłałem dane z powrotem do programu Excel zamiast zapisywać je na serwerze, ponieważ adres URL jest publiczny, chciałem dać ludziom piaskownicę i nie wysyłać losowych plików na mój serwer.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave