我在 Python 中使用 etree 来解析 XML 文件,该文件恰好在节点内有一个“<”字符,所以它返回一个错误:
“与元素类型“BLAHBLAH”关联的属性 blahblah 的值不能包含“<”字符。
没有进入关于格式良好的 XML 的讨论(我别无选择,我没有编写 xml),我想知道是否有办法在 Python 中抑制 etree 中的错误,以便我可以继续解析 XML?
因为小于号是用来包装 xml 元素的,<
所以是预定义的 xml 字符实体之一。考虑读取文件并用<
其实体值替换特定的违规(避免标签):<
在使用 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)