[Python] Prendere dati da un file xml

Marco De Paoli depaolim a gmail.com
Ven 28 Giu 2013 16:33:15 CEST


Il giorno 28 giugno 2013 16:20, Marcello <marcello a linuxvil.it> ha scritto:

> Sono nuovamente qui per chiedere il vostro aiuto.
> Ho un file xml
>
> <ip>192.168.1.1</ip>
> <prg>FooBar</prg>
> <prg>FooBar1</prg>
> <prg>FooBar2</prg>
>
>
> per prendere i dati da questo file faccio così
>
> file = "file.xlm"
> _imp = open(file, "r")
> imp = _imp.read()
> _imp.close()
> if "<ip>" in imp:
>     Ip = imp[imp.index("<ip>")+4:imp.index("</ip>")]
> else:
>     Ip = "0.0.0.0"
> print Ip
>
> il problema è quando ho più di un campo con lo stesso nome.
> Se utilizzo lo stesso metodo per prg giustamente mi viene proposto solo il
> primo risultato (FooBar).
> Come faccio ad avere tutti i risultati?
> Ho provato con un for ..... ma non ho risolto, anche perchè non sempre
> <prg>FooBarX</prg> è sulla stessa riga quindi non posso utilizzare
> readline()
>

ti sconsiglio vivamente di fare tu il parse del file xml
c'è lxml [0] che lo fa ottimamente e poi ti da tutte le primitive per
accedere ai vari elementi via xpath e per ottenre il testo relativo

fai un piccolo investimento a guardarti il tutorial di lxml e vedrai che
vivi meglio :-)

ciao,
Marco

[0] http://lxml.de/
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130628/fdd56685/attachment.html>


Maggiori informazioni sulla lista Python