[Tutor] Playing with XML

Danilo Chilene bicofino at gmail.com
Thu Jun 20 20:29:35 CEST 2013


Hello,

Below is my code:

#!/bin/env python
# -*- coding: utf-8 -*-
import requests
from lxml import etree

url = 'http://192.168.0.1/webservice.svc?wsdl'
headers = {'Content-Type': 'text/xml;charset=UTF-8', 'SOAPAction': '
http://tempuri.org/ITService/SignIn'}
xml = '''<soapenv:Envelope xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
            <soapenv:Header></soapenv:Header>
            <soapenv:Body>
                <tem:SignIn>
                    <tem:rq>
                        <env:ClientSystem>123</env:ClientSystem>
                        <env:CompanyId>123</env:CompanyId>
                        <env:Password>123</env:Password>
                        <env:Signature>omg</env:Signature>
                    </tem:rq>
                </tem:SignIn>
            </soapenv:Body>
        </soapenv:Envelope>'''

response = requests.post(url, data=xml, headers=headers).text
print response

doc = etree.parse(response)


The content of variable response is a big XML with some values that I want.

Part of variable response:
---------------------------------------------------------------------------------------------------------------------
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><SignInResponse
xmlns="http://tempuri.org/"><SignInResult xmlns:a="
http://schemas.datacontract.org/2004/07/Core.DTO.Envelopes.Authentication"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Errors xmlns="
http://schemas.datacontract.org/2004/07/Framework.BaseEnvelopes" xmlns:b="
http://schemas.datacontract.org/2004/07/Framework"/><Messages xmlns="
http://schemas.datacontract.org/2004/07/Framework.BaseEnvelopes" xmlns:b="
http://schemas.datacontract.org/2004/07/Framework"/><Successful xmlns="
http://schemas.datacontract.org/2004/07/Framework.BaseEnvelopes">true</Successful><Warnings
xmlns="http://schemas.datacontract.org/2004/07/Framework.BaseEnvelopes"
xmlns:b="http://schemas.datacontract.org/2004/07/Framework"/><a:ApplicationSettings
xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays
"><b:KeyValueOfstringstring><b:Key>removeDuplicatedFlights</b:Key><b:Value>true</b:Value></b:KeyValueOfstringstring><b:KeyValueOfstringstring><b:Key>useWeakPassword</b:Key>
---------------------------------------------------------------------------------------------------------------------

Below the return of doc = etree.parse(response)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 3630:
ordinal not in range(128)
The type of response is unicode.


The whole idea is sign in on this webservice and get a Security token and
then run another XML on the same script.

Any ideas to transform this unicode on XML and parse it?

Best Regards,

Danilo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20130620/168392ca/attachment.html>


More information about the Tutor mailing list