python如何读取xml标签的多个的属性值
PHPz
PHPz 2017-04-17 15:53:28
[Python讨论组]
warning:这是一个xml文件!


这个就是我要处理的xml文件,请问我如何把文件中每个Item标签中的各个属性值读取出来啊!

PHPz
PHPz

学习是最好的投资!

全部回复(2)
PHP中文网

有两种方法,一种是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'}}

如需详细注释的话可以留言。

怪我咯

第二种(xml.etree.ElementTree):

Element.items() # 获取Element所有属性
Element.attrib # 获取Element所有属性

例子:

print(item.items()) # [('sid', '1712'), ('name', 'CC')]
print(item.attrib) # {'sid': '1712', 'name': 'CC'}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号