LogicMachine Forum
Sending and receiving in XML - Printable Version

+- LogicMachine Forum (https://forum.logicmachine.net)
+-- Forum: LogicMachine eco-system (https://forum.logicmachine.net/forumdisplay.php?fid=1)
+--- Forum: Scripting (https://forum.logicmachine.net/forumdisplay.php?fid=8)
+--- Thread: Sending and receiving in XML (/showthread.php?tid=4638)



Sending and receiving in XML - palomino - 09.03.2023

Hello Daniel. 
You can send me one example of how I can send and receive format XML and Xsd.

this is the idea
I need to communicate with a server. 
To start the communication the server sends me information with this XML structure:
Code:
<?xml version="1.0" encoding="utf-8"?> <stuMessages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://cody.glpconnect.com/XSD/StuMessage_Rev1_0.xsd" timeStamp="27/08/2009 21:00:00 GMT" messageID="56bdca48088610048fddba385e1cd5b8"> <stuMessage> <esn>0-99990</esn> <unixTime>1034268516</unixTime> <gps>N</gps> <payload length="9" source="pc" encoding="hex">0xC0560D72DA4AB2445A</payload> </stuMessage> </stuMessages>

I must read the message and send a response changing the  " timeStamp=" and  " messageID=".

This is the code that I have to send:
Code:
<?xml version="1.0" encoding="utf-8"?> <stuResponseMsg xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://cody.glpconnect.com/XSD/StuResponse_Rev1_0.xsd" deliveryTimeStamp="25/08/2009 21:00:00 GMT" correlationID="56bdca48088610048fddba385e1cd5b8"> <state>pass</state> <stateMessage>Store OK</stateMessage> </stuResponseMsg>

the questions are:
How can I receive a message without sending a Request?
How can I send information in XML format?
How can I read and modify  XML format?

Tk for all your help.


RE: Sending and receiving in XML - Daniel - 10.03.2023

Have a look here how to receive data
https://forum.logicmachine.net/showthread.php?tid=4574&pid=29586#pid29586


RE: Sending and receiving in XML - admin - 10.03.2023

You can use lxp library to parse the XML:
Code:
xml = [[<?xml version="1.0" encoding="utf-8"?> <stuMessages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://cody.glpconnect.com/XSD/StuMessage_Rev1_0.xsd" timeStamp="27/08/2009 21:00:00 GMT" messageID="56bdca48088610048fddba385e1cd5b8"> <stuMessage> <esn>0-99990</esn> <unixTime>1034268516</unixTime> <gps>N</gps> <payload length="9" source="pc" encoding="hex">0xC0560D72DA4AB2445A</payload> </stuMessage> </stuMessages> ]] require('lxp').new({   StartElement = function(parser, tag, attrs)     if tag == 'stuMessages' then       timestamp = attrs.timeStamp       messageid = attrs.messageID     end   end }):parse(xml) log(timestamp) log(messageid)

There's no library for creating XML. For simple formats you can use raw strings:
Code:
timestamp = '27/08/2009 21:00:00 GMT' messageid = '56bdca48088610048fddba385e1cd5b8' xml = [[<?xml version="1.0" encoding="utf-8"?> <stuResponseMsg xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://cody.glpconnect.com/XSD/StuResponse_Rev1_0.xsd" deliveryTimeStamp="]] .. timestamp .. [[" correlationID="]] .. messageid .. [["> <state>pass</state> <stateMessage>Store OK</stateMessage> </stuResponseMsg>]]