XML规范要求
<
必须逃到
<
。每个健全的XML处理器都必须遵循规范。参见相关讨论:
Invalid Characters in XML
.
也就是说,如果您使用如下XML处理器创建XML
ElementTree
,它会为您处理转义和取消转义过程。例如,给定的普通正则表达式字符串包含
<
,
元素树
自动将其替换为
&书信电报;
:
>>> from xml.etree import ElementTree as et
>>> root = et.Element("conditions")
>>> regex_str = "(<=a).*b$"
>>> sub = et.SubElement(root, "condition", attrib = {"pattern_matches": regex_str})
>>> et.tostring(root)
'<conditions><condition pattern_matches="(<=a).*b$" /></conditions>'
…它会自动将其替换回
<
在读取属性值时:
>>> sub.attrib["pattern_matches"]
'(<=a).*b$'