Конвертировать & в & в Python - PullRequest
       7

Конвертировать & в & в Python

1 голос
/ 30 октября 2009

Я работаю над простым сканером в Python. Цель состоит в том, чтобы создать sitemap.xml. (Вы можете найти самую альфа-версию здесь: http://code.google.com/p/sitemappy/) Я заметил, что если я создаю xml с URL-адресами, содержащими не HTML-объекты (например, &), xml не проверяется и не принимается Инструментами Google для веб-мастеров. Существует ли быстрый способ кодирования части строки запроса URL-адресов?

Спасибо!

Маттео

Ответы [ 2 ]

8 голосов
/ 30 октября 2009

cgi.escape на помощь:

cgi.escape(s[, quote])

Преобразуйте символы '&', '<' и '>' в строке s в безопасные для HTML последовательности. Используйте это, если вам нужно отобразить текст, который может содержать такие символы в HTML. Если необязательный флаг кавычки имеет значение true, символ кавычки ('"') также переводится, что помогает включить его в значение атрибута HTML, например, в. Если значение в кавычках может включать символы одинарных или двойных кавычек, или оба, попробуйте вместо этого использовать функцию quoteattr () в модуле xml.sax.saxutils.

Быстрая интерактивная проверка:

>>> import cgi
>>> cgi.escape('<&>')
'&lt;&amp;&gt;'
>>> 
6 голосов
/ 30 октября 2009

Saxutils имеет функцию выхода для сущностей XML:

>>> from xml.sax import saxutils
>>> saxutils.escape("&")
'&amp;'
...