Discuss / Python / 解析天气XML

解析天气XML

Topic source

苏生不语_

#1 Created at ... [Delete] [Delete and Lock User]
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
    }

  • 1

Reply