This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

Sending and receiving in XML
#1
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.
Reply
#2
Have a look here how to receive data
https://forum.logicmachine.net/showthrea...6#pid29586
------------------------------
Ctrl+F5
Reply
#3
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>]]
Reply


Forum Jump: