[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