我正在尝试使用以下方法迭代解析一个带校验和的树:
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()
语句可以解决这个问题,但似乎它在清除之前处理了属性。有没有办法可以清除这个元素而不先处理它?</ p>
答案 0 :(得分:1)
这是我最后做的事情:
答案 1 :(得分:0)
查看definition of xml.etree.cElementTree.iterparse,您会注意到事件的可选参数,您可以在其中报告“开始”事件(默认情况下为“结束”事件)。您可以利用它在start事件后执行elem.clear()并继续以双分支if
语句结束事件。