python webservice sax xml解析

来源:互联网 发布:显卡风扇测试软件 编辑:程序博客网 时间:2024/05/02 04:47
# -*- coding: UTF-8 -*-
__author__ = 'fanyunlei'
import xml.sax
import urllib
allData=[]
class MovieHandler( xml.sax.ContentHandler ):
   def __init__(self):
      self.air={}
      self.CurrentData = ""
      self.Company = ""
      self.AirlineCode = ""
      self.StartDrome = ""
      self.ArriveDrome = ""
      self.StartTime = ""
      self.ArriveTime = ""
      self.Mode=''
      self.AirlineStop=''
      self.Week=''
   def startElement(self, tag, attributes):
      self.CurrentData = tag
      if tag == "AirlinesTime":
         pass
   def endElement(self, tag):

        self.CurrentData = ""

   def characters(self, content):

      if self.CurrentData == "Company":
         self.Company = content
         self.air["Company"]=content
      elif self.CurrentData == "AirlineCode":
         self.AirlineCode = content
         self.air["AirlineCode"]=content
      elif self.CurrentData == "StartDrome":
         self.StartDrome=content
         self.air["StartDrome"]=content
      elif self.CurrentData == "ArriveDrome":
          self.ArriveDrome=content
          self.air["ArriveDrome"]=content
      elif self.CurrentData == "StartTime":
          self.StartTime=content
          self.air["StartTime"]=content
      elif self.CurrentData == "ArriveTime":
          self.ArriveTime=content
          self.air["ArriveTime"]=content
      elif self.CurrentData == "Mode":
          self.Mode=content
          self.air["Mode"]=content
      elif self.CurrentData == "AirlineStop":
          self.AirlineStop=content
          self.air["AirlineStop"]=content
      elif self.CurrentData == "Week":
          self.Week=content
          self.air["Week"]=content
          allData.append(self.air)
          air={}






if ( __name__ == "__main__"):
   parser = xml.sax.make_parser()
   parser.setFeature(xml.sax.handler.feature_namespaces, 0)
   __url='http://webservice.webxml.com.cn/webservices/DomesticAirline.asmx/getDomesticAirlinesTime'
   data=urllib.urlencode({'startCity':'北京','lastCity':'上海','theDate':'','userID':''})
   xml1=urllib.urlopen(__url,data)
   Handler = MovieHandler()
   parser.setContentHandler( Handler )
   parser.parse(xml1)
   print allData
   print allData[0]['Company']
   print allData[0]['AirlineCode']
   print allData[0]['StartDrome']
   print allData[0]['AirlineCode']
   print allData[0]['ArriveDrome']
   print allData[0]['StartTime']
   print allData[0]['ArriveTime']
   print allData[0]['Mode']
   print allData[0]['AirlineStop']


1 0
原创粉丝点击