Pergunta

Estou trabalhando em um rastreador simples em Python. O objetivo é criar um sitemap.xml. (Você pode encontrar a versão muito alfa aqui: http://code.google.com/p/sitemappy/) Notei que, se eu gerar o XML com URLs contendo entidades não HTML (como &), o XML não valida e não é aceito pelo Google Webmaster Tools. Existe uma maneira rápida de codificar a parte da história dos URLs?

Obrigada!

Matteo

Foi útil?

Solução

cgi.escape para o resgate:

cgi.escape(s[, quote])

Converta os caracteres '&', '<' e '' 'em strings S para sequências HTML-Safe. Use isso se precisar exibir o texto que possa conter esses caracteres no HTML. Se a cotação de sinalizador opcional for verdadeira, o caractere da marca de cotação ('"' ') também será traduzido; isso ajuda a inclusão em um valor de atributo HTML, como em. Se o valor a ser citado poderá incluir caracteres de uma ou duas quadras, Ou ambos, considere usar a função quteattr () no módulo xml.sax.saxutils.

Verificação interativa rápida:

>>> import cgi
>>> cgi.escape('<&>')
'&lt;&amp;&gt;'
>>> 

Outras dicas

Saxutils tem uma função de fuga para entidades XML:

>>> from xml.sax import saxutils
>>> saxutils.escape("&")
'&amp;'
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top