2012-02-05 80 views
1

是否有任何方法将参数传递给SAX解析器。我得到的解析器如下:将参数传递给python中的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); 

如何将一个参数传递给处理程序对象?

回答

2

只需让您的__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); 
相关问题