Изпратете 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 и използва препратка към Tools-> References-> Microsoft XML v5.0 във VB редактора. Той е добре коментиран, така че можете да видите всичко, което се случва:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 Sub SendXML ()'HTTP променливаЗатъмнете myHTTP като MSXML2.XMLHTTP'HTTP обектЗадайте myHTTP = CreateObject ("msxml2.xmlhttp")'create dom document variable'съхранява xml за изпращанеЗатъмнете myDom като MSXML2.DOMDocument'Създайте обект DomDocumentЗадайте myDom = CreateObject ("MSXML2.DOMDocument")'Заредете целия документ, преди да продължитеmyDom.async = невярно'xml низ променлива'заменете с местоположение, ако изпращате от файл или URL адресDim myxml As Stringmyxml = "<? xml version =" "1.0" "?>" & _"" & _"мъжко поло" & _"4.89" & _"голям" & _""'зарежда xml'промяна на. Зареждане на файл или URL адресmyDom.loadXML (myxml)'отворете връзкатаmyHTTP.Отваряне на „публикация“, _„https://www.automateexcel.com/excel/pl/xlxml.php“, невярно'изпратете XMLmyHTTP.Send (myDom.XML)'Покажете отговораMsgBox myHTTP.ResponseTextEnd Sub

Ако сте стигнали дотук, добавили сте препратка и сте пуснали кода, ще видите, че наистина PHP е получил и върнал XML:

Забележки: Аз само динамично създадох XML или го заредих от XML файлове и URL адреси, следва да изпратя данни от XML карта.

Повторих данните обратно в Excel, вместо да ги запиша на сървъра, защото URL адресът е публичен, исках да дам на хората пясъчник и да не се изпращат случайни файлове на моя сървър.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave