[Python] Come estrapolare gli attributi da un file xml.

Gollum1 gollum1.smeagol1 a gmail.com
Lun 26 Gen 2015 09:01:59 CET


Il 26 gennaio 2015 08:08, Gollum1 <gollum1.smeagol1 a gmail.com> ha scritto:
> Giorno Lista,
>
> oggi sono arrivato presto al lavoro, e visto che nessuno rompe, ho
> ripreso in mano il mio programmino fermo da parecchio...
>
> attraverso il modulo requests riesco ad ottenere una stringa
> contenente l'XML con tutti i parametri dell'utente loggato alla pagina
> chiamata da requests.
>
> sto usando xml.parsers.expat per analizzarla, e vorrei fare in modo
> che gli attributi che trovo per i vari tag xml vengano restituiti come
> dizionario {nome_tag: attributo_uri}
>
> ho usato questo codice di esempio:
> https://docs.python.org/3.4/library/pyexpat.html#example
>
> e fino a che nelle prove stampo i tag e gli attributi, tutto va bene,
> ma come faccio a fare il return di una voce di dizionario?
>
> pensavo di mettere:
>
>     def start_element(name, attrs):
>          if 'uri' in attrs.keys():
>             return{name: attrs['uri']}
>
> ma chi è il chiamante effettivo, visto che in realtà è come se io
> avessi inettato la mia funzione all'interna della classe del parser?
>
> Byez
> --
> Gollum1 - http://www.gollumone.it
> Tesssssoro, dov'é il mio tessssoro...


naturalmente se uso una variabile esternda al def, la cosa funziona,

urls = dict()

def start_element(name, attrs):
    if 'uri' in attrs.keys():
        urls[name] = attrs['uri']


personalmente però ho sempre cercato di evitare di usare delle
variabili "globali" all'interno di definizioni di funzioni...

se lo faccio solitamente è perché sono comunque all'interno di una
classe, ma in questo caso non ho necessità di refernziare una nuova
classe solo per l'analisi di questo file xml, una volta ottenuto
questi uri non me ne faccio più nulla.

mi sto facendo troppe pippe per nulla?

Byez
-- 
Gollum1 - http://www.gollumone.it
Tesssssoro, dov'é il mio tessssoro...


Maggiori informazioni sulla lista Python