3

環境: Windows、Python、wxpython、xml パーサーとしての要素ツリー。

私は、xml を読み取ってツリーを作成するスタンドアロンを開発しています。私のアプリケーションはxmlを読み取ってツリーを作成しますが、次回xmlが変更されたとき(xmlのDEPTHが増加したとき-つまり、2つの子要素が追加されたとき)、アプリケーションは読み取りに失敗します(ロジックが失敗します:( )

たとえば、深さが 5 の xml を読み取ることができるロジックを作成しましたが、深さが 5 を超える xml を読み取ると、失敗します。深さが動的なxmlの読み方を教えてください。

4

1 に答える 1

2

次のような再帰呼び出しを使用する必要があります。

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.'

すべての要素に 'name' 属性があるわけではありません。したがって、正確なデータ構造に一致するようにこれを調整する必要があります。

于 2010-10-24T18:00:20.840 に答える