Передача аргументов обработчику SAX в python - PullRequest
1 голос
/ 05 февраля 2012

Есть ли способ передать аргументы парсеру SAX.Я получил анализатор следующим образом:

from xml.sax import make_parser, handler
class parserSAXHandler(handler.ContentHandler):

    def __init__(self):


    def startElement(self, name, attrs):

    def endElement(self,name):


    def characters(self, content):


parser = make_parser()
parser.setContentHandler(parserSAXHandler())

doc="PathToDocToBeParsed";
parser.parse(doc);

как я могу передать аргумент объекту обработчика?

1 Ответ

2 голосов
/ 05 февраля 2012

Просто сделайте так, чтобы ваша __init__ функция принимала аргументы, и сохраняйте эти аргументы до следующего.

from xml.sax import make_parser, handler
class parserSAXHandler(handler.ContentHandler):

    def __init__(self, something):
        self.something = something

    def startElement(self, name, attrs):

    def endElement(self,name):
        ...
        do_something(self.something)
        ...

    def characters(self, content):


parser = make_parser()
parser.setContentHandler(parserSAXHandler(some_argument))

doc="PathToDocToBeParsed";
parser.parse(doc);
...