class CitySaxHandler(object): def start_element(self, name, attrs):
#print('sax:start_element: %s, attrs: %s' % (name, str(attrs))) if name == 'yweather:location': self.city = attrs['city'] pass def end_element(self, name): pass def char_data(self, text): pass
def parseXml(xml_str): handler = CitySaxHandler() parser = ParserCreate() parser.StartElementHandler = handler.start_element parser.EndElementHandler = handler.end_element parser.CharacterDataHandler = handler.char_data parser.Parse(xml_str) return { 'city': handler.city, 'forecast': [ { 'date': '2017-11-17', 'high': 43, 'low' : 26 }, { 'date': '2017-11-18', 'high': 41, 'low' : 20 }, { 'date': '2017-11-19', 'high': 43, 'low' : 19 } ] }
Sign in to make a reply
云端67395
class CitySaxHandler(object): def start_element(self, name, attrs):
def parseXml(xml_str): handler = CitySaxHandler() parser = ParserCreate() parser.StartElementHandler = handler.start_element parser.EndElementHandler = handler.end_element parser.CharacterDataHandler = handler.char_data parser.Parse(xml_str) return { 'city': handler.city, 'forecast': [ { 'date': '2017-11-17', 'high': 43, 'low' : 26 }, { 'date': '2017-11-18', 'high': 41, 'low' : 20 }, { 'date': '2017-11-19', 'high': 43, 'low' : 19 } ] }