1
2
3 __version__ = '0.2.0'
4 __date__ = '$Date: 2006-05-03 04:18:20 -0400 (Wed, 03 May 2006) $'.split()[1]
5 __author__ = 'Kurt Schwehr'
6 __doc__='''
7 Some code to try working with SOAP.
8
9 @author: U{'''+__author__+'''<http://schwehr.org/>}
10 @license: GPL v2
11 @copyright: (C) 2006 Kurt Schwehr
12
13 '''
14
15 from lxml import etree
16 from StringIO import StringIO
17
18 xml='''<?xml version="1.0" encoding="utf-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"><soapenv:Body><ActiveStations xmlns="http://opendap.co-ops.nos.noaa.gov/axis/webservices/activestations/wsdl"><stations><station ID="1600012" name="QREB BUOY"><metadata><location><lat> </lat><long> </long><state></state></location><date_established>2006-06-28</date_established></metadata><parameter DCP="1" name="Winds" sensorID="C1" status="1"/><parameter DCP="1" name="Air Temp" sensorID="D1" status="1"/><parameter DCP="1" name="Air Pressure" sensorID="F1" status="1"/></station><station ID="1611400" name="Nawiliwili"><metadata><location><lat>21 57.3 N</lat><long>159 21.4 W</long><state>HI</state></location><date_established>1954-11-24</date_established></metadata><parameter DCP="1" name="Water Level" sensorID="A1" status="1"/><parameter DCP="1" name="Water Temp" sensorID="E1" status="1"/></station><station ID="1612340" name="Honolulu"><metadata><location><lat>21 18.4 N</lat><long>157 52.0 W</long><state>HI</state></location><date_established>1905-01-01</date_established></metadata><parameter DCP="1" name="Water Level" sensorID="A1" status="1"/><parameter DCP="1" name="Water Temp" sensorID="E1" status="1"/><parameter DCP="1" name="Air Pressure" sensorID="F1" status="1"/></station></stations></ActiveStations></soapenv:Body></soapenv:Envelope>'''
19
20 if __name__=='__main__':
21 if True:
22
23 et = etree.parse(StringIO(xml)).getroot()
24 print [ el.tag for el in et[0][0][0][0] ]
25 else:
26 parser = etree.XMLParser(ns_clean=True)
27 et = etree.parse(StringIO(xml),parser)
28
29 print [ type(el.tag) for el in et.getroot()[0][0][0][0] ]
30