Domanda

Ambiente: Windows, Python, Wxpython ed Element Tree come parser XML.

Sto sviluppando uno stand da solo in cui legge l'XML e crea un albero. La mia applicazione legge l'XML e crea albero ma quando XML cambia la prossima volta (quando aumenta la profondità di XML, intendo quando vengono aggiunti due elementi figlio). L'applicazione non riesce a leggere (la logica fallisce :()

Per ad esempio ho scritto una logica in grado di leggere qualsiasi XML che ha una profondità di 5.ma quando legge un XML con una profondità superiore a 5, fallisce. Per favore fatemi sapere come leggere XML la cui profondità è dinamica.

È stato utile?

Soluzione

Dovresti usare chiamate ricorsive, qualcosa di più simile:

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

Non tutti i tuoi elementi avevano attributi di "nome". Quindi dovrai regolare questo per abbinare la struttura dei dati esatti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top