Generar mapa del sitio sobre la marcha

votos
4

Intento generar un sitemap.xml sobre la marcha para un sitio web de asp.net en particular.

Encontré un par de soluciones:

  1. chinookwebs
  2. cervoproject
  3. newtonking

Chinookwebs funciona muy bien pero parece un poco inactivo en este momento y es imposible personalizar las etiquetas priority y changefreq de todas y cada una de las páginas, todas heredan el mismo valor del archivo de configuración.

¿Qué soluciones usan ustedes?

Publicado el 13/08/2008 a las 01:01
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
7

Por lo general, utilizará un controlador HTTP para esto. Ante una solicitud de ...

http://www.yoursite.com/sitemap.axd

... su controlador responderá con un mapa de sitio XML formateado. Si el sitemap se genera sobre la marcha, desde una base de datos o algún otro método depende de la implementación del controlador HTTP.

Aquí es más o menos lo que se vería:

void IHttpHandler.ProcessRequest(HttpContext context)
{
    //
    // Important to return qualified XML (text/xml) for sitemaps
    //
    context.Response.ClearHeaders();
    context.Response.ClearContent();
    context.Response.ContentType = "text/xml";
    //
    // Create an XML writer
    //
    XmlTextWriter writer = new XmlTextWriter(context.Response.Output);
    writer.WriteStartDocument();
    writer.WriteStartElement("urlset", "http://www.sitemaps.org/schemas/sitemap/0.9");
    //
    // Now add entries for individual pages..
    //
    writer.WriteStartElement("url");
    writer.WriteElementString("loc", "http://www.codingthewheel.com");
    // use W3 date format..
    writer.WriteElementString("lastmod", postDate.ToString("yyyy-MM-dd"));
    writer.WriteElementString("changefreq", "daily");
    writer.WriteElementString("priority", "1.0");
    writer.WriteEndElement();
    //
    // Close everything out and go home.
    //
    result.WriteEndElement();
    result.WriteEndDocument();
    writer.Flush();
}

Este código se puede mejorar, pero esa es la idea básica.

Respondida el 13/08/2008 a las 08:19
fuente por usuario

votos
0

El uso de ASP.NET MVC acaba de crear un código rápido usando la biblioteca de generación XML .NET y luego pasa eso a una página de vista que tiene un control XML. En el código subyacente, até el control con ViewData. Esto pareció anular el comportamiento predeterminado de las páginas de vista para presentar un encabezado diferente.

Respondida el 13/08/2008 a las 02:12
fuente por usuario

votos
0

Controlador personalizado para generar el mapa del sitio.

Respondida el 13/08/2008 a las 01:48
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more