Parsowanie XML w Pythonie
14 July 2008
Comments
Obsługa XMLa w Pythonie jest pełna i zapewniana przez wiele modułów. Niestety API nie jest tak proste i przyjemne jak np. simpleXML w PHP. Oto prosty kod XML jaki użyjemy do nauki:
<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 import minidom
#otwieramy plik w parserze
DOMTree = minidom.parse('plik.xml')
print DOMTree.toxml()
from xml.dom import minidom
#Open XML document using minidom parser
DOMTree = minidom.parse('plik.xml')
#pobieramy elementy struktury dokumentu XML
cNodes = DOMTree.childNodes
# struktura pierwszego dziecka "osoba"
print cNodes[0].getElementsByTagName("osoba")[0].toxml()
<osoba>
<imie foo="zzz">Zygmunt</imie>
<email>1@1.pl</email>
</osoba>
Oto kompletny kod parsujący nasz plik XML:
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"):
# nazwa taga
print i.getElementsByTagName("imie")[0].nodeName
# wartosc taga
print i.getElementsByTagName("imie")[0].childNodes[0].toxml()
# dostep do atrybutu
print i.getElementsByTagName("imie")[0].getAttribute("foo")
RkBlog
Comment article