我在Python中使用etree来解析XML文件,该文件碰巧有一个“<”节点内的字符,因此返回错误:
“属性blahblah的值与元素类型相关联 “BLAHBLAH”不得包含“<”字符。
没有讨论格式良好的XML(我别无选择,我没有编写xml),我想知道是否有办法在Python中抑制etree中的错误,所以我可以继续解析XML吗?
答案 0 :(得分:0)
因为小于符号用于包装xml元素,<
是predefined xml character entities之一。在使用xml.etree解析之前,请考虑在文件中读取并用XML文件中的实体值:<
替换特定的违规<
(避免标记):
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", "< somenumber")
with open(newfile, 'a') as ntxt:
ntxt.write(rline)
tree = ET.parse(newfile)