我试图为特定的asp.net网站动态地生成sitemap.xml。动态生成网站地图
我发现一对夫妇的解决方案:
Chinookwebs是伟大的工作,但似乎有点不活跃,现在,它是不可能的,个性化“优先级“和每个页面的”changefreq“标签,它们都从中继承相同的值配置文件。
你们用什么解决方案?
我试图为特定的asp.net网站动态地生成sitemap.xml。动态生成网站地图
我发现一对夫妇的解决方案:
Chinookwebs是伟大的工作,但似乎有点不活跃,现在,它是不可能的,个性化“优先级“和每个页面的”changefreq“标签,它们都从中继承相同的值配置文件。
你们用什么解决方案?
通常你会用这个HTTP Handler。鉴于...
...您的处理器将被格式化XML网站地图响应的请求。这个站点地图是从数据库还是其他方法实时生成的,取决于HTTP处理程序的实现。
这里的大致它会是什么样子:
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();
}
这个代码可以改善,但是这是基本的想法。
使用ASP.NET MVC使用.NET XML生成库只是简单地创建了一小段代码,然后将它传递给了一个具有XML控件的视图页面。在代码隐藏中,我将控件与ViewData绑定在一起。这似乎覆盖了视图页面的默认行为以呈现不同的页眉。
这是另一篇文章,提供代码来完成此操作:http://www.blackbeltcoder.com/Articles/asp/dynamic-sitemaps-in-asp-net – 2011-01-08 02:22:12