class WeatherSaxHandler(object): def __init__(self): self.forecast = list() def start_element(self, name, attrs): #print('sax:start_element: %s, attrs: %s' % (name, str(attrs))) if name == 'yweather:location': self.city = attrs['city'] print('城市名称:%s' % self.city) elif name == 'yweather:forecast': self.forecast.append({'date': attrs['date'], 'high': attrs['high'], 'low': attrs['low']}) def end_element(self, name): pass def char_data(self, text): pass def parseXml(xml_str): # print(xml_str) handler = WeatherSaxHandler() parser = ParserCreate() parser.StartElementHandler = handler.start_element parser.EndElementHandler = handler.end_element parser.CharacterDataHandler = handler.char_data parser.Parse(xml_str) print(handler.forecast) return { 'city': handler.city, 'forecast': handler.forecast }
Sign in to make a reply
苏生不语_