从字符串转义无效的XML字符<,>和& 失败的解决方案#1 解决方案#2失败

问题描述

我正在尝试从字符串生成元素树,其中的内容来自某些外部来源。我现在面临的问题是,我收到的字符串可能包含要由ElementTree解析的无效字符,例如><&

考虑以下示例:

import xml.etree.ElementTree as ET

content = '<div>Peak current ripple (DC current <= 1 A)</div>'
elem = ET.fromstring(content)

上面的代码导致以下明显错误

xml.etree.ElementTree.ParseError:格式不正确(令牌无效)

失败的解决方案#1

我现在已经尝试通过预先替换字符来避免此问题:

content = content.replace('<','&lt;')
content = content.replace('>','&gt;')
content = content.replace('&','&amp;')

但是,当然,它也可以替换XML标记中的字符。所以这种方法行不通。

解决方案#2失败

我也尝试过使用自定义的解析器:

parser = ET.XMLParser(recover=True)
elem = ET.fromstring(content,parser=parser)

但这似乎不再受支持


有人可以提供有关如何替换那些特殊字符的建议,但不能替代XML标记中的那些特殊字符吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)