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
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- lxml是一个功能丰富且简单易用的Python XML、HTML文档解析库 Documentation 概述 l...
- 今天给大家介绍一个用于处理xml的开源库xml_models2,它主要能用来对xml文件进行解析。这个库建立在lx...