Thread View: pl.comp.lang.python
4 messages
4 total messages
Started by Wróbel
Tue, 15 Jun 2010 12:31
parsowanie xml'a w pythonie
Author: Wróbel
Date: Tue, 15 Jun 2010 12:31
Date: Tue, 15 Jun 2010 12:31
27 lines
1698 bytes
1698 bytes
Cześć,
Chcę wyciągnąć z pliku xml imie oraz email (z "osoba" pliku xml:
<znajomi>
<osoba>
<imie foo="zzz">Zygmunt</imie>
<email>1@1.pl</email>
</osoba>
<osoba>
<imie foo="aaaa">Janina</imie>
<email>2@2.pl</email>
</osoba>
</znajomi>
kod:from xml.dom import minidom
#Open XML document using minidom parser
DOMTree = minidom.parse('plik.xml')
#pobieramy elementy struktury dokumentu XML
cNodes = DOMTree.childNodes
for i in cNodes[0].getElementsByTagName("osoba"):
# wartosc taga
print i.getElementsByTagName("imie")[0].childNodes[0].toxml()
co powinienem dodać, aby dostać wartość "emaila" ?print
i.getElementsByTagName("email")[0].childNodes[0].toxml() niestety nie
dzialaPrzeslałem Wam książkowy przyklad, mój kod jest troszkę inny, ale idea
ta sama.Dzięki z góry
Re: parsowanie xml'a w pythonie
Author: Wróbel
Date: Tue, 15 Jun 2010 12:37
Date: Tue, 15 Jun 2010 12:37
33 lines
1951 bytes
1951 bytes
Sorry za formatowanie, dziś mi sie wszystko &%^$$
Użytkownik "Wróbel" <NOwrobel@e-wrobel.pl> napisał w wiadomości
news:hv7rq6$klh$1@inews.gazeta.pl...
> Cześć,
>
> Chcę wyciągnąć z pliku xml imie oraz email (z "osoba" pliku xml:
> <znajomi>
> <osoba>
> <imie foo="zzz">Zygmunt</imie>
> <email>1@1.pl</email>
> </osoba>
> <osoba>
> <imie foo="aaaa">Janina</imie>
> <email>2@2.pl</email>
> </osoba>
> </znajomi>
> kod:from xml.dom import minidom
>
> #Open XML document using minidom parser
> DOMTree = minidom.parse('plik.xml')
>
> #pobieramy elementy struktury dokumentu XML
> cNodes = DOMTree.childNodes
> for i in cNodes[0].getElementsByTagName("osoba"):
> # wartosc taga
> print i.getElementsByTagName("imie")[0].childNodes[0].toxml()
> co powinienem dodać, aby dostać wartość "emaila" ?print
> i.getElementsByTagName("email")[0].childNodes[0].toxml() niestety nie
> dzialaPrzeslałem Wam książkowy przyklad, mój kod jest troszkę inny, ale
> idea ta sama.Dzięki z góry
>
>
Re: parsowanie xml'a w pythonie
Author: Daniel Mróz
Date: Tue, 15 Jun 2010 14:12
Date: Tue, 15 Jun 2010 14:12
37 lines
1870 bytes
1870 bytes
On 15.06.2010, Wróbel <NOwrobel@e-wrobel.pl> wrote:
> Sorry za formatowanie, dzi? mi sie wszystko &%^$$
Powinieneś bardziej chyba przeprosić za kodowanie wiadomości.
Alternatywa:
In [1]: from lxml import etree
In [2]: s = """<znajomi>
...: <osoba>
...: <imie foo="zzz">Zygmunt</imie>
...: <email>1@1.pl</email>
...: </osoba>
...: <osoba>
...: <imie foo="aaaa">Janina</imie>
...: <email>2@2.pl</email>
...: </osoba>
...: </znajomi>"""
In [3]: e = etree.fromstring(s)
In [4]: for el in e.xpath('/znajomi/osoba/email'): print el.text
....:
1@1.pl
2@2.pl
Pozdrawiam
Beorn
--
Daniel 'Beorn' Mróz <beorn@alpha.pl> http://127.0.0.1/beorn
[GIT d s:- a-@ C++++ UL++++$ P+ L++++ E--- W+ N+++ o? K- w---]
[O- M- V! PS+ PE++ Y+ PGP++ t- 5 X R !tv b+ DI D++ G++ e h*]
[ r++ y+ ]
Re: parsowanie xml'a w pythonie
Author: Jordan Szubert
Date: Tue, 15 Jun 2010 17:09
Date: Tue, 15 Jun 2010 17:09
69 lines
3114 bytes
3114 bytes
Dnia 15-06-2010 o 14:31:02 Wróbel <NOwrobel@e-wrobel.pl> napisał(a):
> Cze¶æ,
>
> Chcê wyci±gn±æ z pliku xml imie oraz email (z "osoba" pliku xml:
> <znajomi>
> <osoba>
> <imie foo="zzz">Zygmunt</imie>
> <email>1@1.pl</email>
> </osoba>
> <osoba>
> <imie foo="aaaa">Janina</imie>
> <email>2@2.pl</email>
> </osoba>
> </znajomi>
> kod:from xml.dom import minidom
>
> #Open XML document using minidom parser
> DOMTree = minidom.parse('plik.xml')
>
> #pobieramy elementy struktury dokumentu XML
> cNodes = DOMTree.childNodes
> for i in cNodes[0].getElementsByTagName("osoba"):
> # wartosc taga
> print i.getElementsByTagName("imie")[0].childNodes[0].toxml()
> co powinienem dodaæ, aby dostaæ warto¶æ "emaila" ?print
> i.getElementsByTagName("email")[0].childNodes[0].toxml() niestety nie
> dzialaPrzesla³em Wam ksi±¿kowy przyklad, mój kod jest troszkê inny, ale
> idea
> ta sama.Dziêki z góry
Python 3.1.2 (r312:79149, Mar 21 2010, 00:41:52) [MSC v.1500 32 bit
(Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> xml="""
... <znajomi>
... <osoba>
... <imie foo="zzz">Zygmunt</imie>
... <email>1@1.pl</email>
... </osoba>
... <osoba>
... <imie foo="aaaa">Janina</imie>
... <email>2@2.pl</email>
... </osoba>
... </znajomi>
... """
>>> from xml.dom.minidom import parseString
>>> T=parseString(xml)
>>> print(T.toxml())
<?xml version="1.0" ?><znajomi>
<osoba>
<imie foo="zzz">Zygmunt</imie>
<email>1@1.pl</email>
</osoba>
<osoba>
<imie foo="aaaa">Janina</imie>
<email>2@2.pl</email>
</osoba>
</znajomi>
>>> for n in T.getElementsByTagName('osoba'):
... print(n.getElementsByTagName('imie').item(0).lastChild.nodeValue)
... print(n.getElementsByTagName('email').item(0).lastChild.nodeValue)
...
Zygmunt
1@1.pl
Janina
2@2.pl
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads