diff --git a/sleekxmpp/xmlstream/tostring.py b/sleekxmpp/xmlstream/tostring.py index addd6989..4d7976b1 100644 --- a/sleekxmpp/xmlstream/tostring.py +++ b/sleekxmpp/xmlstream/tostring.py @@ -16,7 +16,7 @@ from __future__ import unicode_literals import sys -from xml.etree.ElementTree import _escape_cdata, _raise_serialization_error +from xml.etree.ElementTree import _escape_cdata, _escape_attrib if sys.version_info < (3, 0): import types @@ -146,20 +146,7 @@ def escape(text, use_cdata=False): if use_cdata: return _escape_cdata(text, encoding) - # copied from xml.etree.ElementTree._escape_attrib with "'" case - try: - if "&" in text: - text = text.replace("&", "&") - if "<" in text: - text = text.replace("<", "<") - if ">" in text: - text = text.replace(">", ">") - if "\"" in text: - text = text.replace("\"", """) - if "'" in text: - text = text.replace("'", "'") - if "\n" in text: - text = text.replace("\n", " ") - return text.encode(encoding, "xmlcharrefreplace") - except (TypeError, AttributeError): - _raise_serialization_error(text) + text = _escape_attrib(text, encoding) + if "'" in text: + text = text.replace("'", "'") + return text