我試圖爲特定的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