我正在使用xml.etree.ElementTree
来读取包含团队及其成员列表的xml文件。我想访问会员名称。
-<xml>
-<teams>
-<team>
-<members>
-<member1>
<style>Name1</style>
</member1>
-<member2>
<style>Name2</style>
</member2>
-<member3>
<style>Name3</style>
</member3>
</members>
-</team>
-<team>
…
-<team>
-</team>
…
-<team>
-</team>
-</teams>
-</xml>
我使用以下代码获取会员名称:
import xml.etree.ElementTree as ET
tree = ET.parse(infile)
root = tree.getroot()
for child in root[0]:
for node in child:
if node.tag=="members":
for _member in node.iter("style"):
print(_member.text)
这些代码部分解决了问题。实际上,直接访问标签member1非常有效。有什么办法吗?
答案 0 :(得分:0)
xml.etree.ElementTree
的XPath支持有限,但在这种情况下就足够了:
for name in root.findall(".//team/members/*/style"):
print(name.text)
演示:
>>> import xml.etree.ElementTree as ET
>>>
>>> tree = ET.parse("test.xml")
>>> root = tree.getroot()
>>>
>>> for name in root.findall(".//team/members/*/style"):
... print(name.text)
...
Name1
Name2
Name3