[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