首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有cElementTree的ParseError无效字符

带有cElementTree的ParseError无效字符
EN

Stack Overflow用户
提问于 2012-06-08 04:33:29
回答 2查看 926关注 0票数 0

我试图迭代地解析一棵树,末尾有一个校验和,使用:

代码语言:javascript
复制
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()语句可以解决这个问题,但它似乎是在清除之前先处理属性。有没有一种方法可以在不先处理元素的情况下清除它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-12 05:53:18

这就是我最终要做的:

  1. 将XML文件作为文本读取到内存中。
  2. 使用正则表达式查找标记。
  3. 删除开始标记和结束标记之间的所有内容。
  4. 重写到XML文件。
  5. 解析新的XML文件。
  6. 继续我的快乐之路。
票数 1
EN

Stack Overflow用户

发布于 2012-06-08 07:10:07

查看definition of xml.etree.cElementTree.iterparse,您会注意到事件有一个可选参数,您可以在其中报告"start“事件(默认情况下是”end“事件)。您可以利用它在开始事件之后执行elem.clear(),并作为双分支if语句继续结束事件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10939452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档