擅长:python、mysql、java
<p>假设<code>root</code>来自ElemenTree解析,您可以创建一个包含每个节点的所有祖先列表的数据结构,然后cnd对此进行迭代以调用checkChild:</p>
<pre><code>def checkChild(*element_chain):
# Code placeholder
print("Checking %s" % '.'.join(t.tag for t in reversed(element_chain)))
tree = ET.fromstring(xml)
# Build a dict containing each node and its ancestors
nodes_and_parents = {}
for elem in tree.iter(): # tree.iter yields every tag in the XML, not only the root childs
for child in elem:
nodes_and_parents[child] = [elem, ] + nodes_and_parents.get(elem, [])
for t, parents in nodes_and_parents.items():
checkChild(t, *parents)
</code></pre>