Package noaadata :: Module testparse
[hide private]
[frames] | no frames]

Source Code for Module noaadata.testparse

 1  #!/usr/bin/env python 
 2   
 3  __version__ = '0.2.0' #'$Revision: 2075 $'.split()[1] 
 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      #if False: 
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          #print etree.tostring(et.getroot()) 
29          print [ type(el.tag) for el in et.getroot()[0][0][0][0] ] 
30