Python ElementTree findtext不';找不到叶节点

Python ElementTree findtext不';找不到叶节点,python,xml,elementtree,Python,Xml,Elementtree,我使用ElementTree扫描从文本文件中提取的XML字符串 <root> <branch_a> <leaf>foo</leaf> </branch_a> <branch_b> <another_leaf>bar</another_leaf> </branch_b> </root> 但当我穿过这棵树时,一切都很

我使用ElementTree扫描从文本文件中提取的XML字符串

<root>
    <branch_a>
        <leaf>foo</leaf>
    </branch_a>
    <branch_b>
        <another_leaf>bar</another_leaf>
    </branch_b>
</root>
但当我穿过这棵树时,一切都很好:

>>> elem_tree.findtext('branch_a/leaf')
'foo'

>>> branch = elem_tree.find('branch_a')
>>> branch.findtext('leaf')
'foo'
有没有办法让ElementTree帮我扫描整棵树?我的分支名称是动态的,我正在寻找的叶子可以生活在任何分支下

我可以用minidom实现这一点,但也遇到了其他限制。下面是我在那里做的,供参考(错误检查)


findtext
使用ElementTree样式的path语句,因此您只扫描直接子级。这将扫描整个树(请参阅):

我是这样做的:

leaf_text = elem_tree.findall('.//leaf')

for x in range(0, len(leaf_text)):
    print leaf_text[x].text

这正是我所缺少的。谢谢
>>> xml_doc = xml.dom.minidom.parseString(xml_string)
>>> leaf_node = xml_doc.getElementsByTagName('leaf')
>>> leaf_node[0].firstChild.nodeValue
'foo'
leaf_text = elem_tree.findtext('.//leaf')
leaf_text = elem_tree.findall('.//leaf')

for x in range(0, len(leaf_text)):
    print leaf_text[x].text