我有一个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 方法。
我可以使用什么来避免无效字符并解析这个大文件?