Как я могу получить текст между тегами с помощью Python синтаксический анализатор SAX?

То, в чем я нуждаюсь, просто получают текст соответствующего тега и сохраняют его в базу данных. Так как XML-файл является большим (4.5 ГБ), я использую саксофон. Я использовал метод символов, чтобы получить текст и поместить его в словарь. Однако, когда я печатаю текст в endElement методе, я получаю новую строку вместо текста.

Вот мой код:

def characters(self,content):
   text = unescape(content))
   self.map[self.tag]=text

def startElement(self, name, attrs):
   self.tag = name

def endElement (self, name)
   if (name=="sometag")
   print self.map[name]

Заранее спасибо.

7
задан ablimit 14 February 2010 в 20:11
поделиться

1 ответ

Текст в теге разбивается на блоки процессором SAX. символы могут вызываться несколько раз.

Вам нужно сделать что-то вроде:

def startElement(self, name, attrs):
    self.map[name] = ''
    self.tag = name

def characters(self, content):
    self.map[self.tag] += content

def endElement(self, name):
    print self.map[name]
8
ответ дан 7 December 2019 в 05:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: