[python] XML PARSER
hexima@seznam.cz
hexim2007 na gmail.com
Úterý Duben 10 00:58:15 CEST 2007
Diky za odpoved,
nakonec jsem pouzil tento priklad :
Vzorovy XML:
<?xml version='1.0' encoding='UTF-8'?>
<myxml>
<neco>
<tagA>Ahoj Svete</tagA>
</neco>
<mysql>
<host>localhost</host>
<user>root</user>
<password>heslo</password>
<db>databaze</db>
</mysql>
</myxml>
#!/usr/bin/python
import xml.sax as sax
from xml.sax.handler import ContentHandler
xmltoparse = 'xxx.xml'
class my_handler(ContentHandler): # definujeme nas handler jako
potomka ContentHandler
def startDocument( self):
"tahle funkce se vola na zacatku dokumentu"
## self.document je slovnik (dictionary) - obsahuje polozky
asociovane s libovolnymi klici
self.document = {}
## vynulujeme textovy obsah aktualniho elementu
self._recent_text = ''
def endElement( self, name): # vola se na konci elementu
if name == "tagA":
self.document['tagA'] = self._recent_text.strip()
if name == "host":
self.document['host'] = self._recent_text.strip()
if name == "user":
self.document['user'] = self._recent_text.strip()
self._recent_text = ''
def characters( self, content): # vola se pokazde kdyz parser
precte cast obsahu dokumentu neni zaruceno, ze se cely obsah preda
najednou
self._recent_text += content
# samotny akt cteni XML
dh = my_handler()
sax.parse(xmltoparse, dh)
print dh.document['tagA']
print dh.document['host']
print dh.document['user']
dekuji za odpoved a krasny priklad.
Hexim
Další informace o konferenci Python