pacodelumberg
pacodelumberg

Reputation: 2274

Passing arguments to SAX handler in python

Is there any way to pass arguments to a SAX parser. I got the parser in as follows:

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);

how can I pass an argument to the handler object?

Upvotes: 1

Views: 478

Answers (1)

Gareth Latty
Gareth Latty

Reputation: 89097

Simply make your __init__ function take arguments, and store those arguments until later.

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);

Upvotes: 2

Related Questions