Invia XML utilizzando XMLHTTP

Sommario

Ho messo insieme uno script di base per inviare una stringa o un file XML a un server Web utilizzando Excel VBA e un semplice script PHP per ricevere i dati. Il processo utilizza XMLHTTP.

L'obiettivo è creare un semplice script di caricamento per aggiornare un server con dati XML creati da un foglio di calcolo. Quindi fare in modo che più cartelle di lavoro dell'utente finale vengano mappate al file centrale e creare report da esso. I dadi e bulloni di base:

Per l'esempio utilizzo una stringa XML di base che assomiglia a questa:

1234567891011 myxml = "<?xml version=""1.0""?>" & _"" & _"polo da uomo" & _"4.89" & _"grande" & _""

Il PHP che ho usato restituisce semplicemente i dati che è stato inviato a Excel. Quindi, se ricevi gli stessi dati XML che hai inviato in una finestra di messaggio, l'hai fatto correttamente. Se non vengono trovati dati del post, viene visualizzato il messaggio "nessun dado". La posizione dell'URL del test è /pl/xlxml.php

Ovviamente vorrai aggiornare lo script per salvare il contenuto del file sul tuo server per usi pratici. Ecco il PHP per ricevere i dati del post XML e restituirli:

1234567891011121314151617

Quindi ora sappiamo cosa stiamo inviando e come riceverlo, inviamo i dati XML!

Il codice seguente è stato creato in Excel 2003 e utilizzando un riferimento a Strumenti->Riferimenti->Microsoft XML v5.0 nell'editor VB. È ben commentato in modo da poter vedere tutto quello che sta succedendo:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 Sub SendXML()"Variabile HTTP"Dim myHTTP As MSXML2.XMLHTTP"Oggetto HTTP"Imposta myHTTP = CreateObject("msxml2.xmlhttp")'crea variabile documento dom'memorizza l'xml da inviareDim myDom As MSXML2.DOMDocument'Crea l'oggetto DomDocumentImposta myDom = CreateObject("MSXML2.DOMDocument")'Carica l'intero documento prima di andare avantimyDom.async = False'variabile stringa xml'sostituisci con la posizione se invii da file o URLDim myxml As Stringmyxml = "<?xml version=""1.0""?>" & _"" & _"polo uomo" & _"4.89" & _"grande" & _""'carica l'xml'cambia in .Load per file o urlmyDom.loadXML (myxml)'apri la connessionemyHTTP.Apri "post", _"https://www.automateexcel.com/excel/pl/xlxml.php", False'invia l'XMLmioHTTP.Send (mioDom.XML)'Mostra la rispostaMsgBox myHTTP.ResponseTextFine sottotitolo

Se sei arrivato fino a questo punto, hai aggiunto un riferimento ed eseguito il codice, vedrai che effettivamente PHP ha ricevuto e restituito l'XML:

Note: ho solo creato dinamicamente l'XML o l'ho caricato da file XML e URL, il prossimo è inviare dati da una mappa XML.

Ho riportato i dati su Excel invece di scriverli sul server perché l'URL è pubblico, volevo dare alle persone una sandbox e non inviare file casuali al mio server.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave