如何解析XML并获取特定节点属性的实例?
我在XML中有很多行,我正在尝试获取特定节点属性的实例。
<foo>
<bar>
<type foobar="1"/>
<type foobar="2"/>
</bar>
</foo>
如何访问属性的值?在此示例中,我想要 和 。foobar
"1"
"2"
我在XML中有很多行,我正在尝试获取特定节点属性的实例。
<foo>
<bar>
<type foobar="1"/>
<type foobar="2"/>
</bar>
</foo>
如何访问属性的值?在此示例中,我想要 和 。foobar
"1"
"2"
我建议ElementTree
。同一API还有其他兼容的实现,例如lxml
,以及Python标准库本身;但是,在这种情况下,他们主要增加的是更高的速度 - 编程部分的易用性取决于API,它定义了。cElementTree
ElementTree
首先从 XML 构建一个 Element 实例,例如使用 XML 函数,或者使用如下内容解析文件:root
import xml.etree.ElementTree as ET
root = ET.parse('thefile.xml').getroot()
或者 ElementTree
上显示的许多其他方式中的任何一种。然后执行如下操作:
for type_tag in root.findall('bar/type'):
value = type_tag.get('foobar')
print(value)
输出:
1
2
迷你圈
是最快和最直接的。
XML:
<data>
<items>
<item name="item1"></item>
<item name="item2"></item>
<item name="item3"></item>
<item name="item4"></item>
</items>
</data>
蟒:
from xml.dom import minidom
dom = minidom.parse('items.xml')
elements = dom.getElementsByTagName('item')
print(f"There are {len(elements)} items:")
for element in elements:
print(element.attributes['name'].value)
输出:
There are 4 items:
item1
item2
item3
item4