Enviar XML mediante XMLHTTP

Tabla de contenido

He creado un script básico para enviar una cadena XML o un archivo a un servidor web usando Excel VBA y un script PHP simple para recibir los datos. El proceso utiliza XMLHTTP.

El objetivo es crear un script de carga simple para actualizar un servidor con datos XML creados a partir de una hoja de cálculo. Luego, haga que varios libros de trabajo de usuario final se asignen al archivo central y cree informes a partir de él. Los tornillos y tuercas básicos:

Para el ejemplo, uso una cadena XML básica que se ve así:

1234567891011 myxml = "<? xml version =" "1.0" "?>" & _"" & _"polo para hombre" & _"4.89" & _"grande" & _""

El PHP que he usado simplemente devuelve los datos que se enviaron a Excel. Entonces, si recibe los mismos datos XML que envió en un cuadro de mensaje, lo hizo correctamente. Si no se encuentran datos de la publicación, dice "sin dados". La ubicación de la URL de prueba es /pl/xlxml.php

Obviamente, querrá actualizar el script para guardar el contenido del archivo en su servidor para usos prácticos. Aquí está el PHP para recibir los datos de publicación XML y devolverlos:

1234567891011121314151617

Ahora que sabemos lo que estamos enviando y cómo recibirlo, ¡enviemos los datos XML!

El siguiente código fue creado en Excel 2003 y usando una referencia a Herramientas-> Referencias-> Microsoft XML v5.0 en el editor de VB. Está bien comentado para que pueda ver todo lo que está sucediendo:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 Sub SendXML ()'Variable HTTPAtenuar myHTTP como MSXML2.XMLHTTP'Objeto HTTPEstablecer myHTTP = CreateObject ("msxml2.xmlhttp")'crear variable de documento dom'almacena el xml para enviarAtenuar myDom como MSXML2.DOMDocument'Crear el objeto DomDocumentEstablecer myDom = CreateObject ("MSXML2.DOMDocument")'Cargue el documento completo antes de continuarmyDom.async = Falso'variable de cadena xml'reemplácelo con la ubicación si se envía desde un archivo o URLDim myxml como cadenamyxml = "<? xml version =" "1.0" "?>" & _"" & _"polo para hombre" & _"4.89" & _"grande" & _""'carga el xml'cambiar a .Load para archivo o urlmyDom.loadXML (myxml)'abre la conexiónmyHTTP.Open "publicación", _"https://www.automateexcel.com/excel/pl/xlxml.php", falso'enviar el XMLmyHTTP.Send (myDom.XML)'Muestra la respuestaMsgBox myHTTP.ResponseTextEnd Sub

Si ha llegado hasta aquí, agregó una referencia y ejecutó el código, verá que, de hecho, PHP recibió y devolvió el XML:

Notas: Solo creé dinámicamente el XML o lo cargué desde archivos XML y URL, lo siguiente es enviar datos desde un mapa XML.

Envié los datos a Excel en lugar de escribirlos en el servidor porque la URL es pública, quería darle a la gente una caja de arena y no enviar archivos aleatorios a mi servidor.

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave