def _unescape_entities(xml_text):
"""
Strips tags of the form <text:span ...> from inside Jinja elements
and unescapes HTML codes for >, <, & and "
"""
unescape_rules = {
r'(?is)({([{%])[^%}]*?)(</?text:s.*?>)(.*?[%}]})': r'\1 \4',
r'(?is)({([{%])[^%}]*?)(>)(.*?[%}]})' : r'\1>\4',
r'(?is)({([{%])[^%}]*?)(<)(.*?[%}]})' : r'\1<\4',
r'(?is)({([{%])[^%}]*?)(&)(.*?[%}]})' : r'\1&\4',
r'(?is)({([{%])[^%}]*?)(")(.*?[%}]})' : r'\1"\4',
}
for regexp, replacement in unescape_rules.items():
subs_made = True
while subs_made:
xml_text, subs_made = re.subn(regexp, replacement, xml_text)
return xml_text
评论列表
文章目录