解析包含无效字符的巨大xml文件

时间:2017-11-22 14:35:43

标签: python xml sax elementtree

我有一个1GB的xml文件,但它有一些无效的字符,如'&'。我想用Python解析它。为此,我使用了如下元素树:

import xml.etree.cElementTree as cElementTree                             

def main(): 
   context = cElementTree.iterparse('newscor.xml', events=("start", "end"))
   context = iter(context)
   event, root = context.__next__()

   for event, elem in context:
     if event == "start":
         if elem.tag == 'group': 
            elem.tail = None
            print ( elem.text)
         if elem.tag in ['group']:
            root.clear()                                               
main()

但它在这一行for event, elem in context中给了我以下错误:

xml.etree.ElementTree.ParseError: not well-formed (invalid token)

为了处理此错误,我尝试将lxml与recover=True一起用于解析器,如此link中所述。但是, iterparse()在lxml中没有解析器参数。

因此,我也尝试在此solution中使用Sax,但我不知道在哪里使用 escape 方法。

我可以使用什么来避免无效字符并解析这个大文件?

0 个答案:

没有答案