Вопрос

Я работаю над простым сканером на 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('<&>')
'&lt;&amp;&gt;'
>>> 

Другие советы

Саксутилы имеет экранирующую функцию для XML-объектов:

>>> from xml.sax import saxutils
>>> saxutils.escape("&")
'&amp;'
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top