我试图迭代地解析一棵树,末尾有一个校验和,使用:
import xml.etree.cElementTree as et
for event, elem in et.iterparse("C:\myXMLfile.xml"):
if elem.tag == "Signature":
elem.clear()这将在以下字符引发一个ParseError: reference to invalid character number: line 4205, column 25:<Signature value="e?'O;????5?u??c???]????<??jX" />
我原以为elem.clear()语句可以解决这个问题,但它似乎是在清除之前先处理属性。有没有一种方法可以在不先处理元素的情况下清除它?
发布于 2013-04-12 05:53:18
这就是我最终要做的:
发布于 2012-06-08 07:10:07
查看definition of xml.etree.cElementTree.iterparse,您会注意到事件有一个可选参数,您可以在其中报告"start“事件(默认情况下是”end“事件)。您可以利用它在开始事件之后执行elem.clear(),并作为双分支if语句继续结束事件。
https://stackoverflow.com/questions/10939452
复制相似问题