【发布时间】:2018-03-23 17:10:56
【问题描述】:
我有一个类似于以下内容的 XML 文件:
<a>
<b>
<c>
</c>
</b>
<d>
<e>
<f>Value</f> <!-- I want to extract this -->
</e>
</d>
<d>
<e>
<f>Value2</f> <!-- and this -->
</e>
</d>
.
.
.
我正在尝试使用以下 Python 代码从节点中检索所有数据,即 Value1、Value2 .....我的理解是否正确?
import xml.etree.ElementTree as ET
tree = ET.parse('file.xml')
for elem in tree.iterfind('a/d/e/f'):
print(elem.tag, elem.attrib)
但是,我只是得到一个空循环。我也尝试使用在线示例 findall() 但无济于事。我只是想验证我是否正确理解了他们的能力。
【问题讨论】:
-
如果你把那个 XML 片段变成一个完整的文档(这可能只是在最后添加
</a>的问题),这将更容易调试。更好的是,将 XML 放在源代码中的字符串中并更改您的示例以使用它而不是文件,然后您将拥有完美的 minimal reproducible example。
标签: python xml elementtree