环境:Windows,Python,Wxpython和Element Tree作为XML解析器。

我正在独立地开发一个读XML并创建树的独立式。我的应用程序读取XML并创建树,但是当XML下次更改时(当XML的深度增加时 - 我的意思是,当添加两个子元素时)。应用程序未能读取(逻辑失败:()

对于例如,我写了一个逻辑,该逻辑可以读取任何具有5.但深度读取深度超过5的XML的XML,它会失败。请让我知道如何阅读XML的深度是动态的。

有帮助吗?

解决方案

您应该使用递归电话,更像是:

def recurse_tree(node):
    tree = {}
    for element in node:
        name = element.get('name')
        tree[name] = recurse_tree(element)
    if tree:
        return tree
    else:
        return 'No children.'

并非所有元素都具有“名称”属性。因此,您将需要调整它以匹配您的确切数据结构。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top