Почитал пару туториалов и поглядел сорцы SAX'a, но так и не понял, можно ли из хендлера что то вернуть обратно? Например я хочу достать текст из элементов <offer>
class Handler(ContentHandler):
def __init__(self):
ContentHandler.__init__(self)
self.texts = []
self.data = None
def startElement(self, name, attrs):
if name == "offer":
self.in_offer = True
self.data = ""
def characters(self, data):
if self.in_offer:
self.data += data
def endElement(self, name):
if name == "offer":
self.in_offer = False
self.texts.append(self.data)
parser = make_parser()
parser.setContentHandler(Handler())
parser.parse(open("/path/to/file", "r"))
texts = parser.texts
проблема в том что parser не возвращает вроде ничего и поэтому parser.texts существовать не будет.. Есть ли какой то способ всё таки получить данные или это в принципе так и задумывалось?