2010-10-24 3 views
3

Окружающая среда: Windows, Python, wxpython и дерево элементов в виде XML-парсера.Чтение динамического xml с использованием дерева элементов

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

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

+0

Похоже, проблема может быть в вашей логике, почему бы вам не опубликовать ее? –

+0

@ Роберт Клюин. Привет, я добавил свой пример кода в следующий gist с разной глубиной. Пожалуйста, найдите его здесь - http://gist.github.com/643697. (gist: 643697). Мой код может читать образец xml1, но не может прочитать образец xml 2 – abhishek

ответ

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

Не является У ваших элементов были атрибуты «имя». Поэтому вам нужно будет отрегулировать это, чтобы он соответствовал вашей точной структуре данных.

+0

Спасибо за быстрый ответ. Xml, который я загрузил, был фиктивным. В моем приложении каждый элемент будет иметь атрибут name. – abhishek

+0

Спасибо, Роберт. – abhishek

Смежные вопросы