有两种方法,一种是xml.dom.minidom,另一种是xml.etree.ElementTree。
这里先说第一种。
昂,到家一看第二种已经有人写出来了,这里更新一下代码,有处小问题。
另外其实还有第三种叫“正则匹配”的方法,晚些时候更新。
import xml.dom.minidom
from xml.dom import Node
path = 'xml文件路径'
dom = xml.dom.minidom.parse(path)
root = dom.documentElement
listInfos = []
for child in root.childNodes:
if child.nodeType == Node.ELEMENT_NODE:
dictAttr = {}
for key in child.attributes.keys():
attr = child.attributes[key]
dictAttr[attr.name] = attr.value
listInfos.append({child.nodeName: dictAttr})
# 输出结果更清晰直观一点
for index, each in enumerate(listInfos):
print '----', index + 1, '----', each
输出结果:
---- 1 ---- {u'Item': {u'TotalResult': u'OK', u'CheckResult': u'OK', u'AvName': u'a', u'CheckStatus': u'2', u'TotalStatus': u'2', u'FileId': u'21'}}
---- 2 ---- {u'Item': {u'TotalResult': u'OK', u'CheckResult': u'OK', u'AvName': u'a', u'CheckStatus': u'2', u'TotalStatus': u'2', u'FileId': u'21'}}
---- 3 ---- {u'Item': {u'TotalResult': u'OK', u'CheckResult': u'OK', u'AvName': u'a', u'CheckStatus': u'2', u'TotalStatus': u'2', u'FileId': u'21'}}
如需详细注释的话可以留言。