我正在尝试使用 Python 从 XML 文件中解析具有特定标记的元素并生成输出 excel 文档,该文档将包含元素并保留它们的层次结构。
我的问题是我无法弄清楚每个元素(解析器迭代的)嵌套的深度。
XML 示例提取(3 个元素,它们可以任意嵌套在它们自己内部):
<A>
<B>
<C>
</C>
</B>
</A>
<B>
<A>
</A>
</B>
以下代码使用 ElementTree 可以很好地迭代元素。但我认为 ElementTree 无法确定每个元素的嵌套深度。见下文:
import xml.etree.ElementTree as ET
root = ET.parse('XML_file.xml')
tree = root.getroot()
for element in tree.iter():
if element.tag in ("A","B","C"):
print(element.tag)
这将为我提供按正确顺序排列的元素 A、B、C 的列表。但我需要用他们的水平信息打印出来,
所以不仅:
A
B
C
B
A
但是像:
A
--B
----C
B
--A
为了能够做到这一点,我需要获取每个元素的级别。有没有合适的python解析器可以轻松做到这一点?我会想象像“element.hierarchyLevel”这样会返回一些整数索引的东西......