支持引号的静态Python方法进行XML转义字符串
我有一个字符串,里面既有经过XML转义的字符,也有没有转义的字符,我需要它完全符合XML的标准,比如:
>>> s = '< <'
我想要的结果是:
>>> s = '< <'
我尝试过很多方法,比如用lxml、cgi等等,但它们都要求输入的字符串里不能已经有有效的XML字符:
>>> import cgi
>>> cgi.escape("< <")
'< &lt;'
或者
>>> from xml.sax.saxutils import escape
>>> escape("< <")
'< &lt;'
难道没有一个标准的方法可以解决这个问题吗?
肯定有人遇到过同样的问题 :)
1 个回答
7
你最好的办法是先解码,然后再编码:
>>> from xml.sax.saxutils import escape, unescape
>>> unescape("< <")
'< <'
>>> escape(unescape("< <"))
'< <'