def parseXml(xml_str): class DefaultSaxHandler(object): def __init__(self): self.dic = {} def start_element(self, name, attrs): if name == 'yweather:location': self.dic = attrs handler = DefaultSaxHandler() parser = ParserCreate() parser.StartElementHandler = handler.start_element parser.Parse(xml_str) return handler.dic
经过反复实践,有以下经验,不知道对不对:
定义类DefaultSaxHandler的时候,类的方法start_element本来是可以直接return一个结果的,但是,start_element需要传入参数,偏偏这些参数又必须由解析器parser来产生传入,而parser又反过来依赖于handler.start_element,所以形成逻辑上的死循环,于是最终只能用__init__的self.dic来实现目的。
感觉上貌似做通了,但是还是有觉得没完全掌握,恳请各位大神指导。
XML和HTML解析 - CSDN博客 https://blog.csdn.net/langqing12345/article/details/45877027
这篇可以参考一下
Sign in to make a reply
gd83594394
经过反复实践,有以下经验,不知道对不对:
感觉上貌似做通了,但是还是有觉得没完全掌握,恳请各位大神指导。