Pregunta

Estoy trabajando en un rastreador simple en Python. El objetivo es crear un sitemap.xml. (puede encontrar la versión muy alfa aquí: http://code.google.com/p/sitemappy / ) Noté que si genero el xml con URL que contienen entidades que no son HTML (como & amp;), el xml no se valida y las Herramientas para webmasters de Google no lo aceptan. ¿Existe una forma rápida de codificar la parte de la cadena de consulta de las URL?

¡Gracias!

Matteo

¿Fue útil?

Solución

cgi.escape al rescate:

  

cgi.escape (s [, quote])

     

Convertir los caracteres '& amp;', '<' y '>' en cadenas a secuencias seguras para HTML. Use esto si necesita mostrar texto que pueda contener dichos caracteres en HTML. Si la cita de bandera opcional es verdadera, el carácter de comillas ('"') también se traduce; Esto ayuda a la inclusión en un valor de atributo HTML, como en. Si el valor a citar puede incluir caracteres de comillas simples o dobles, o ambos, considere usar la función quoteattr () en el módulo xml.sax.saxutils en su lugar.

Comprobación interactiva rápida:

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

Otros consejos

Saxutils tiene una función de escape para entidades XML:

>>> from xml.sax import saxutils
>>> saxutils.escape("&")
'&amp;'
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top