[pyar] Como no meter caracteres raros en el xml al crear un sitemap con django?
Emiliano Dalla Verde Marcozzi
edvm en fedoraproject.org
Mar Jun 2 21:13:42 ART 2015
Buenas lista,
Les cuento que al generar un sitemap usando django, ala:
from django.contrib.sitemaps import Sitemap
class ProductSitemap(Sitemap):
def items(self):
return Products.objects.all()
Genera un xml inválido por una url como la siguiente (char raro luego de
dopvstar):
<loc>http://...app/vendor/bayashi/product/dopvstar^B/version/00..</loc>.
Dando un error como el siguiente:
This page contains the following errors:
error on line 3 at column 535170: PCDATA invalid Char value 2
Mirando el código de Sitemap, encuentro que tiene un método get_urls:
https://github.com/django/django/blob/master/django/contrib/sitemaps/__init__.py#L75
Con lo cual escribí una clase que herede de Sitemap y pise este método para
chequear cada url y ver si es "metible en un xml"
class MySitemap(Sitemap):
def get_urls(self, page=1, site=None, protocol=None):
urls = super(SecuritySitemap, self).get_urls(page, site, protocol)
# aca debería chequear url por url para ver si es "xml-able"
# ...
return urls
Si no es "xml-able" estimo voy a ignorar la url y seguir con la siguiente.
Las preguntas son:
1- Como puedo verificar si un dato es válido para meterlo en el xml?
2- Alguna otra forma de hacer esto en Django? Me refiero a generar siempre
un sitemap/documento xml válido.
Desde ya muchas gracias!,
Emiliano.
--
Broken code @ https://github.com/edvm
<edvm en python.org.ar>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20150602/0b1ad75c/attachment.html>
More information about the pyar
mailing list