【问题标题】:How can I get the text between tags using python SAX parser?如何使用 python SAX 解析器获取标签之间的文本?
【发布时间】:2018-01-24 11:56:10
【问题描述】:

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

提前致谢。

【问题讨论】:

    标签: python xml sax


    【解决方案1】:

    标签中的文本由 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]
    

    【讨论】:

    猜你喜欢
    • 2021-12-14
    • 2011-02-19
    • 2012-11-10
    • 2011-10-28
    • 2013-02-17
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多