Envoyer XML à l'aide de XMLHTTP

Table des matières

J'ai mis en place un script de base pour envoyer une chaîne ou un fichier XML à un serveur Web à l'aide d'Excel VBA et un simple script PHP pour recevoir les données. Le processus utilise XMLHTTP.

L'objectif est de créer un script de téléchargement simple pour mettre à jour un serveur avec des données XML créées à partir d'une feuille de calcul. Faites ensuite correspondre plusieurs classeurs d'utilisateurs finaux au fichier central et créez des rapports à partir de celui-ci. Les écrous et boulons de base :

Pour l'exemple, j'utilise une chaîne XML de base qui ressemble à ceci :

1234567891011 myxml = "<?xml version=""1.0""?>" & _"" & _"polo homme" & _"4.89" & _"grand" & _""

Le PHP que j'ai utilisé renvoie simplement les données qu'il a été renvoyées à Excel. Donc, si vous recevez les mêmes données XML que vous avez envoyées dans une boîte de message, vous l'avez fait correctement. Si aucune donnée de publication n'est trouvée, il est dit "pas de dés". L'emplacement de l'URL de test est /pl/xlxml.php

Évidemment, vous voudrez mettre à jour le script pour enregistrer le contenu du fichier sur votre serveur à des fins pratiques. Voici le PHP pour recevoir les données de publication XML et les renvoyer :

1234567891011121314151617

Alors nous savons maintenant ce que nous envoyons, et comment le recevoir, envoyons les données XML !

Le code suivant a été créé dans Excel 2003 et en utilisant une référence à Outils->Références->Microsoft XML v5.0 dans l'éditeur VB. C'est bien commenté pour que vous puissiez voir tout ce qui se passe :

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 Sous-Envoyer XML()'Variable HTTPDiminuer monHTTP en tant que MSXML2.XMLHTTP'Objet HTTPDéfinir myHTTP = CreateObject("msxml2.xmlhttp")'créer une variable de document dom'stocke le XML à envoyerDim myDom As MSXML2.DOMDocument'Créer l'objet DomDocumentDéfinir monDom = CreateObject("MSXML2.DOMDocument")'Charger tout le document avant de continuermyDom.async = Faux'variable chaîne xml'remplacer par l'emplacement si envoi à partir d'un fichier ou d'une URLDim myxml en tant que chaînemyxml = "<?xml version=""1.0""?>" & _"" & _"polo homme" & _"4.89" & _"grand" & _""'charge le xml'changer en .Load pour le fichier ou l'urlmyDom.loadXML (myxml)'ouvrir la connexionmyHTTP.Open "post", _"https://www.automateexcel.com/excel/pl/xlxml.php", Faux'envoyer le XMLmonHTTP.Envoyer (monDom.XML)'Afficher la réponseMsgBox monHTTP.ResponseTextFin du sous-marin

Si vous êtes arrivé jusqu'ici, avez ajouté une référence et exécuté le code, vous verrez qu'en effet PHP a reçu et renvoyé le XML :

Remarques : J'ai uniquement créé le XML de manière dynamique ou l'ai chargé à partir de fichiers XML et d'URL. Ensuite, il s'agit d'envoyer des données à partir d'une carte XML.

J'ai renvoyé les données dans Excel au lieu de les écrire sur le serveur car l'URL est publique, je voulais donner aux gens un bac à sable et ne pas envoyer de fichiers aléatoires sur mon serveur.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave