如何遍历复杂XML树的每个元素

时间:2013-06-26 02:38:42

标签: python xml elementtree

我已经用这种方式声明了一个根:

root = ET.fromstring(xml_data)

,假设我有一个类似于此的

XML代码
<a>
    <b>
        <c>
            <d>
                <e>
                    ...
                </e>
            </d>
        </c>
    </b>
</a>

我不太清楚如何在元素树中迭代这些元素。

我考虑过这样做:

while (True)
    for child in root
        print child.tag

但最终得到了无限的输出:

a
a
a
a
a

为了让您了解我想要做什么,我传递了两个XML代码,一个是相当大而复杂的XML代码,另一个只是一个简单的XML代码。 我需要找到大型XML代码中有多少匹配的XML。

因此,我需要迭代大型XML中的每个元素,并将其与每个小型XML元素进行比较。

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

任何解决方案都将是递归的

process_node(node n)
    do something with n.text if present
    for child in n.children
        process_node(child)

在顶层

process_node(root)

根据需要添加节点名称测试以自定义处理。