Чтение динамического XML с использованием дерева элементов - PullRequest
3 голосов
/ 24 октября 2010

Среда: Windows, Python, wxpython и дерево элементов в виде парсера xml.

Я разрабатываю отдельный, где он читает XML и создает дерево. Мое приложение читает xml и создает дерево, но когда xml изменяется в следующий раз (когда DEPTH xml увеличивается, я имею в виду, когда добавляются два дочерних элемента). Приложению не удается прочитать (логика не удается :()

Например, Я написал логику, которая может читать любой xml с глубиной 5. Но когда он читает xml с глубиной более 5, он терпит неудачу. Пожалуйста, дайте мне знать, как читать XML, глубина которого является динамической.

1 Ответ

2 голосов
/ 24 октября 2010

Вы должны использовать рекурсивные вызовы, что-то вроде:

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'.Так что вам нужно будет отрегулировать это в соответствии с вашей точной структурой данных.

...