我想使用Python xml ElementTree API解析以下XML文件。Python xml ElementTree findall返回空結果
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<foos>
<foo_table>
<!-- bar -->
<fooelem>
<fname>BBBB</fname>
<group>SOMEGROUP</group>
<module>some module</module>
</fooelem>
<fooelem>
<fname>AAAA</fname>
<group>other group</group>
<module>other module</module>
</fooelem>
<!-- bar -->
</foo_table>
</foos>
在這個例子中的代碼我試圖找到所有下/ FOOS/foo_table/fooelem/FNAME的元素,但這段代碼運行時明顯的findall沒有發現任何東西。
import xml.etree.cElementTree as ET
tree = ET.ElementTree(file="min.xml")
for i in tree.findall("./foos/foo_table/fooelem/fname"):
print i
root = tree.getroot()
for i in root.findall("./foos/foo_table/fooelem/fname"):
print i
我不跟ElementTree的API經歷過,但我https://docs.python.org/2/library/xml.etree.elementtree.html#example下使用的例子。爲什麼它不適用於我的情況?
謝謝。是否有特定的理由來選擇root.findall()而不是tree.findall()?看起來兩者都顯示了相同的結果。 – ThoWe
@ThoWe:我沒有理由知道,我的猜測是這只是慣例。 –