7

我需要的只是获取相应标签的文本并将其保存到数据库中。由于 xml 文件很大(4.5GB),我使用的是 sax。我使用字符方法来获取文本并将其放入字典中。但是,当我在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]

提前致谢。

4

1 回答 1

8

标记中的文本由 SAX 处理器分块。characters可能会被多次调用。

您需要执行以下操作:

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]
于 2010-02-14T20:18:20.660 回答