Gerar mapa do site on the fly

votos
4

Eu estou tentando gerar um sitemap.xml na mosca para um determinado site asp.net.

Eu encontrei soluções de casal:

  1. chinookwebs
  2. cervoproject
  3. newtonking

Chinookwebs está funcionando muito bem, mas parece um pouco inativo no momento e é impossível para personalizar a prioridade e os changefreq tags de cada página, todos eles herdam o mesmo valor a partir do arquivo de configuração.

Que soluções é que vocês usam?

Publicado 13/08/2008 em 01:01
fonte usuário
Em outras línguas...                            


3 respostas

votos
7

Normalmente você vai usar um manipulador HTTP para isso. Dado um pedido de ...

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

... o manipulador irá responder com um mapa do site XML formatado. Quer que o mapa do site é gerado em tempo real, a partir de um banco de dados, ou algum outro método é até a implementação Handler HTTP.

Aqui está mais ou menos o que seria parecido com:

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 pode ser melhorado, mas essa é a idéia básica.

Respondeu 13/08/2008 em 08:19
fonte usuário

votos
0

Usando ASP.NET MVC acabei de pegar um pouco rápido de código usando a biblioteca .NET geração XML e, em seguida, acabou de passar isso para uma página de visualização que tinha um controle XML nele. No code-behind eu amarrei o controle com o ViewData. Isto pareceu para substituir o comportamento padrão de páginas vista para apresentar um cabeçalho diferente.

Respondeu 13/08/2008 em 02:12
fonte usuário

votos
0

manipulador personalizado para gerar o mapa do site.

Respondeu 13/08/2008 em 01:48
fonte usuário

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