332
投票
minidom 是最快最直截了当的:
XML:
<data>
<items>
<item name="item1"></item>
<item name="item2"></item>
<item name="item3"></item>
<item name="item4"></item>
</items>
</data>
python:
from xml.dom import minidom
xmldoc = minidom.parse('items.xml')
itemlist = xmldoc.getElementsByTagName('item')
print(len(itemlist))
print(itemlist[0].attributes['name'].value)
for s in itemlist:
print(s.attributes['name'].value)
OUTPUT
4
item1
item1
item2
item3
item4
我建议ElementTree。有相同的API的其他兼容的实现中,如lxml,和cElementTreePython标准库本身; 但是在这种情况下,他们主要添加的是更快的速度 - 编程部分的简单性取决于ElementTree定义的API 。
e从XML中构建Element实例(例如使用XML函数),或者使用类似的方式解析文件
import xml.etree.ElementTree
e = xml.etree.ElementTree.parse('thefile.xml').getroot()
或者其他显示方式中的任何一种ElementTree,您只需要执行以下操作:
for atype in e.findall('type'):
print(atype.get('foobar'))
和类似的,通常很简单的代码模式。