On Wednesday, April 20, 2016 at 10:05:02 AM UTC-7, Joaquin Alzola wrote: > Hi Guys > > I am currently doing this: > > IP client(Python) --> send SOAPXML request --> IP Server (Python) > > SOAP request: > <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:req="http:/ > /request.messagepush.interfaces.comviva.com" > xmlns:xsd="http://request.messagepush.interfaces > .comviva.com/xsd"> > <xsd:text>test\ntest\ntest<{[£ EURO&%]}></xsd:text> > > From my IP Client: > s.send(data_send.encode('utf-8')) > > From my IPServer: > xml_decoded = data.decode('utf-8') > xml_root = > ET.ElementTree(ET.fromstring(xml_decoded)).getroot() > for elem in xml_root.getiterator(): > > if('{http://request.messagepush.interfaces.comviva.com/xsd}shortCode'==elem.tag): > shortCode = > (elem.text).rstrip() > > if('{http://request.messagepush.interfaces.comviva.com/xsd}text'==elem.tag): > send_text = > (elem.text).rstrip() > > if('{http://request.messagepush.interfaces.comviva.com/xsd}item'==elem.tag): > subscribers = > (elem.text).rstrip() > result_sms = > send_sms(subscribers,shortCode,send_text) > > It is working fine but I am having problems with a couple of special > characters, & and < > > The problem: > <xsd:text>test\ntest\ntest<{[£ EURO&%]}></xsd:text> > > It seems as if I send this: <> and the character & then I have a problem. > I need to use utf-8 as I need to make sure I get 160 characters in one SMS. > > Error: > Traceback (most recent call last): > File "./ipserver.py", line 52, in <module> > main() > File "./ipserver.py", line 36, in main > xml_root = ET.ElementTree(ET.fromstring(xml_decoded)).getroot() > File "/usr/lib64/python3.4/xml/etree/ElementTree.py", line 1325, in XML > parser.feed(text) > xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 19, > column 48 > This email is confidential and may be subject to privilege. If you are not > the intended recipient, please do not copy or disclose its content but > contact the sender immediately upon receipt.
If I had to make a guess, you need to escape the <, >, and &characters or else they'll get parsed by the XML parser. Try sending "<xsd:text>test\ntest\ntest<{[£ EURO&%]}></xsd:text>" -- https://mail.python.org/mailman/listinfo/python-list