我使用ElementTree掃描從文本文件中拉出的XML字符串。ElementTree findtext找不到葉節點
<root>
<branch_a>
<leaf>foo</leaf>
</branch_a>
<branch_b>
<another_leaf>bar</another_leaf>
</branch_b>
</root>
當我分析它,並試圖找到葉節點,我沒有得到任何結果:
>>> elem_tree = xml.etree.ElementTree.fromstring(xml_string)
>>> leaf_text = elem_tree.findtext('leaf')
>>> leaf_text is None
True
但是,當我遍歷樹,一切正常:
>>> elem_tree.findtext('branch_a/leaf')
'foo'
>>> branch = elem_tree.find('branch_a')
>>> branch.findtext('leaf')
'foo'
有沒有一種方法讓ElementTree爲我掃描整棵樹?我的分支名稱是動態的,我尋找的葉子可以生活在任何分支下。
我能用minidom做到這一點,但遇到了其他限制。這裏是我在那裏做的,供參考(剝去錯誤檢查)。
>>> xml_doc = xml.dom.minidom.parseString(xml_string)
>>> leaf_node = xml_doc.getElementsByTagName('leaf')
>>> leaf_node[0].firstChild.nodeValue
'foo'
這是我錯過了什麼。謝謝! – 2014-10-17 17:28:42