Send XML ved hjælp af XMLHTTP

Indholdsfortegnelse

Jeg har sammensat et grundlæggende script til at sende en XML -streng eller fil til en webserver ved hjælp af Excel VBA og et simpelt PHP -script til at modtage dataene. Processen bruger XMLHTTP.

Målet er at oprette et simpelt upload -script til opdatering af en server med XML -data, der er oprettet fra et regneark. Derefter skal flere slutbruger -projektmapper tilknyttes den centrale fil og oprette rapporter fra den. De grundlæggende møtrikker og bolte:

I eksemplet bruger jeg en grundlæggende XML -streng, der ser sådan ud:

1234567891011 myxml = "<? xml version =" "1.0" "?>" & _"" & _"herre polo" & _"4.89" & _"stor" & _""

Den PHP, jeg har brugt, returnerer ganske enkelt de data, den blev sendt tilbage til Excel. Så hvis du modtager de samme XML -data, som du sendte i en meddelelsesboks, har du gjort det korrekt. Hvis der ikke findes postdata, står der "ingen terninger". Placeringen af ​​testwebadressen er /pl/xlxml.php

Det er klart, at du vil opdatere scriptet for at gemme filindholdet på din server til praktisk brug. Her er PHP'en til at modtage XML -postdataene og returnere dem:

1234567891011121314151617

Så vi ved nu, hvad vi sender, og hvordan vi får det, lad os sende XML -dataene!

Følgende kode blev oprettet i Excel 2003 og ved hjælp af en reference til Værktøjer-> Referencer-> Microsoft XML v5.0 i VB-editoren. Det er godt kommenteret, så du kan se alt, hvad der foregår:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 Sub SendXML ()'HTTP -variabelDim myHTTP som MSXML2.XMLHTTP'HTTP -objektIndstil myHTTP = CreateObject ("msxml2.xmlhttp")'opret dom dokumentvariabel'gemmer xml'en, der skal sendesDim myDom som MSXML2.DOMDocument'Opret DomDocument -objektetIndstil myDom = CreateObject ("MSXML2.DOMDocument")'Ilæg hele dokumentet, før du går videremyDom.async = Falsk'xml strengvariabel'erstat med placering, hvis du sender fra fil eller URLDim myxml som strengmyxml = "<? xml version =" "1.0" "?>" & _"" & _"herre polo" & _"4.89" & _"stor" & _""'indlæser xml'skift til .Load for fil eller urlmyDom.loadXML (myxml)'åbne forbindelsenmyHTTP.Åbn "indlæg", _"https://www.automateexcel.com/excel/pl/xlxml.php", Falsk'send XMLmyHTTP.Send (myDom.XML)'Vis svaretMsgBox myHTTP.ResponseTextAfslut Sub

Hvis du har nået så langt, tilføjet en reference og kørt koden, vil du se, at PHP faktisk modtog og returnerede XML:

Bemærkninger: Jeg har kun dynamisk oprettet XML eller indlæst den fra XML -filer og URL'er. Næste er at sende data fra et XML -kort.

Jeg gentog dataene tilbage til Excel i stedet for at skrive dem til serveren, fordi URL'en er offentlig, jeg ville give folk en sandkasse og ikke have tilfældige filer sendt til min server.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave