Конвертировать и в &в Python
Вопрос
Я работаю над простым сканером на Python.Цель состоит в том, чтобы создать sitemap.xml .(вы можете найти саму альфа-версию здесь: http://code.google.com/p/sitemappy/) Я заметил, что если я генерирую xml с URL-адресами, содержащими объекты, отличные от HTML (такие как &), xml не проверяется и не принимается Google Webmaster Tools.Есть ли быстрый способ закодировать строку запроса в URL-адресах?
Спасибо!
Маттео
Решение
cgi.escape
спешим на помощь:
cgi.escape(s[, quote])
Преобразуйте символы '&', '<' и '>' в строке s к последовательностям, безопасным для HTML.Используйте это, если вам нужно отобразить текст, который может содержать такие символы в HTML.Если необязательная кавычка с флагом имеет значение true, символ кавычки ('"') также переводится;это помогает для включения в значение атрибута HTML, как в .Если значение, заключаемое в кавычки, может содержать символы, заключенные в одинарные или двойные кавычки, или и то, и другое, рассмотрите возможность использования функции quoteattr() в модуле xml.sax.saxutils вместо этого.
Быстрая интерактивная проверка:
>>> import cgi
>>> cgi.escape('<&>')
'<&>'
>>>
Другие советы
Саксутилы имеет экранирующую функцию для XML-объектов:
>>> from xml.sax import saxutils
>>> saxutils.escape("&")
'&'