美文网首页
用Python解析XML

用Python解析XML

作者: 元苍子 | 来源:发表于2018-12-20 08:28 被阅读0次
    def xml_parse(xml_str):
    
        class EchoTarget(object):
    
            def __init__(self):
                self.data_list = []
                self.data_dict = {}
                self.tag = ''
                self.value = ''
                self.attr = ''
    
            def start(self, tag, attrib):
                # start 在元素打开时触发。数据和元素的子元素仍不可用。
                self.tag = tag
                if dict(attrib):
                    self.attr = dict(attrib)
                # print("start %s %r" % (tag, dict(attrib)))
    
            def end(self, tag):
                # end 在元素关闭时触发。所有元素的子节点,包括文本节点,现在都是可用的。
                if self.value:
                    self.data_list.append(dict(
                        key=self.tag,
                        value=self.value,
                        attr=self.attr
                    ))
                # print("end %s" % tag)
    
            def data(self, dt):
                # data 触发文本子节点并访问该文本。
                if isinstance(dt, str):
                    if dt.strip():
                        self.value = dt
                # print("data %r" % dt)
    
            def comment(self, text):
                print("comment %s" % text)
    
            def close(self):
                # close 在解析完成后触发。
                return self.data_list
    
        # 解析xml字符串
        parser = etree.XMLParser(target=EchoTarget())
        return etree.XML(xml_str, parser)
    

    相关文章

      网友评论

          本文标题:用Python解析XML

          本文链接:https://www.haomeiwen.com/subject/koeekqtx.html