0

我以这种方式声明了一个根:

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 元素进行比较。

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

4

1 回答 1

0

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

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

并且在顶层

process_node(root)

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

于 2013-06-26T03:35:31.220 回答