Reputation: 2274
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
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