【发布时间】:2016-11-21 12:46:04
【问题描述】:
我有以下标记:
<a>
<b>
<c>
<d>
<e>
</b>
<f>
<g>
</f>
</a>
使用 ElementTree 函数 .iter() 我得到类似:
a, b, c, d, e, f, g
我需要找到一种方法来保持父母和孩子之间的关系,例如,我想知道“f”父母是“a”。到目前为止,我能想到的唯一方法是每次找到父节点时:len(list(elem)) > 0,我将该节点添加到列表中并跟踪当前的“级别" 的节点来建立这种关系。我觉得这个解决方案不是很优雅,我确信有一个更简单的解决方案,不幸的是我还没有找到它:/,我希望有人能对我有所启发:D
ps。在有人“在你问之前使用搜索”之前,我已经阅读了每一篇在某种程度上与我正在尝试做的事情相关的帖子,比如:
- Keep track of parent elements using ElementTree
- Iterating multiple (parent,child) nodes using Python ElementTree
碰巧他们是非常具体的用例,对我没有太大帮助,或者至少我没有找到将他们的解决方案与我的解决方案联系起来的方法。
提前致谢
【问题讨论】:
-
使用字典?父母是关键,孩子是价值。如果孩子只能有一个父母,这在 XML 中应该是正确的。
-
以我的标记为例,在我的例子中,我可以让
出现在 和 中,这种情况并不常见,但它可能会发生。
标签: python relationship parent elementtree