2010-10-24 13 views
3

Environnement: Windows, Python, wxpython et arborescence d'éléments en tant qu'analyseur XML.Lire un fichier XML dynamique à l'aide de l'arborescence des éléments

Je développe un stand alone où il lit le xml et crée un arbre. Mon application lit le xml et crée l'arbre, mais quand xml change la prochaine fois (lorsque DEPTH xml increases- je veux dire quand deux éléments enfants sont ajoutés) .Application ne parvient pas à lire (Logic échoue :()

Pour exemple I J'ai écrit une logique qui peut lire n'importe quel xml qui a une profondeur de 5.Mais quand il lit un xml avec une profondeur supérieure à 5. S'il vous plaît laissez-moi savoir comment lire xml dont la profondeur est dynamique

+0

Il semble que le problème soit dans votre logique, pourquoi ne pas l'afficher? –

+0

@ Robert Kluin. Salut, J'ai ajouté mon code d'échantillon dans l'essentiel suivant avec une profondeur différente.Veuillez le trouver ici - http://gist.github.com/643697. (Gist: 643697). Mon code peut lire l'exemple xml1 mais ne parvient pas à lire l'exemple xml 2 – abhishek

Répondre

2

Vous devriez utiliser des appels récursifs, quelque chose comme:

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

N ot tous vos éléments avaient des attributs 'nom'. Vous devrez donc l'ajuster pour correspondre à votre structure de données exacte.

+0

Merci pour le quick reply.Xml que j'avais téléchargé était un mannequin.Dans mon application, chaque élément aura l'attribut 'name'. – abhishek

+0

Merci robert. – abhishek