Отправить XML с помощью XMLHTTP

Содержание

Я собрал базовый скрипт для отправки XML-строки или файла на веб-сервер с помощью Excel VBA и простой PHP-скрипт для получения данных. В процессе используется XMLHTTP.

Цель состоит в том, чтобы создать простой сценарий загрузки для обновления сервера XML-данными, созданными из электронной таблицы. Затем сопоставьте несколько рабочих книг конечных пользователей с центральным файлом и создайте из него отчеты. Основные гайки и болты:

В этом примере я использую базовую строку XML, которая выглядит так:

1234567891011 myxml = "<? xml version =" "1.0" "?>" & _"" & _"мужское поло" & _"4.89" & _"большой" & _""

PHP, который я использовал, просто возвращает данные, которые были отправлены обратно в Excel. Так что, если вы получили те же XML-данные, которые отправили в окне сообщения, вы все сделали правильно. Если данные не найдены, будет написано «нет кости». Расположение тестового URL-адреса: /pl/xlxml.php

Очевидно, вы захотите обновить скрипт, чтобы сохранить содержимое файла на сервере для практического использования. Вот PHP для получения и возврата XML-данных:

1234567891011121314151617

Итак, теперь мы знаем, что мы отправляем и как это получить, давайте отправим XML-данные!

Следующий код был создан в Excel 2003 с использованием ссылки на Инструменты-> Ссылки-> Microsoft XML v5.0 в редакторе VB. Он хорошо прокомментирован, поэтому вы можете видеть все, что происходит:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 Sub SendXML ()'HTTP-переменнаяDim myHTTP как MSXML2.XMLHTTP'HTTP-объектУстановите myHTTP = CreateObject ("msxml2.xmlhttp")'создать переменную документа dom'сохраняет xml для отправкиDim myDom как MSXML2.DOMDocument'Создать объект DomDocumentУстановите myDom = CreateObject ("MSXML2.DOMDocument")'Загрузите весь документ перед тем, как продолжитьmyDom.async = Ложь'строковая переменная xml'заменить на местоположение при отправке из файла или URLDim myxml как строкуmyxml = "<? xml version =" "1.0" "?>" & _"" & _"мужское поло" & _"4.89" & _"большой" & _""'загружает xml'изменить на .Load для файла или URLmyDom.loadXML (myxml)'открыть соединениеmyHTTP.Open "post", _«https://www.automateexcel.com/excel/pl/xlxml.php», неверно'отправить XMLmyHTTP.Send (myDom.XML)'Показать ответMsgBox myHTTP.ResponseTextКонец подписки

Если вы зашли так далеко, добавили ссылку и запустили код, вы увидите, что PHP действительно получил и вернул XML:

Примечания: я только динамически создал XML или загрузил его из файлов XML и URL-адресов, затем нужно отправить данные из карты XML.

Я отправил данные обратно в Excel вместо того, чтобы записывать их на сервер, потому что URL-адрес является общедоступным, я хотел дать людям песочницу и не отправлять случайные файлы на мой сервер.

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave