etree xml python如何修改严格性?

时间:2016-01-09 14:14:38

标签: python xml xml.etree

我在Python中使用etree来解析XML文件,该文件碰巧有一个“<”节点内的字符,因此返回错误:

  

“属性blahblah的值与元素类型相关联   “BLAHBLAH”不得包含“<”字符。

没有讨论格式良好的XML(我别无选择,我没有编写xml),我想知道是否有办法在Python中抑制etree中的错误,所以我可以继续解析XML吗?

1 个答案:

答案 0 :(得分:0)

因为小于符号用于包装xml元素,<predefined xml character entities之一。在使用xml.etree解析之前,请考虑在文件中读取并用XML文件中的实体值:<替换特定的违规&lt;(避免标记):

import xml.etree.ElementTree as ET 

oldfile = "Original.xml" 
newfile = "Output.xml"

with open(oldfile, 'r') as otxt: 
    for rline in otxt: 
         if " < somenumber" in rline: 
            rline = rline.replace(" < somenumber", "&lt; somenumber")

         with open(newfile, 'a') as ntxt: 
            ntxt.write(rline)

tree = ET.parse(newfile)