基于C# 網站地圖制作
2024-09-07 17:05:16
供稿:網友
1、 我們的網站是用C#開發的,我們采用數據庫存儲所有文章信息。所以我們的文章都是動態地從數據庫中提取出來的。這點很不利于蜘蛛的順藤摸瓜。
2、 這點嘛,嘿嘿,就有些勉強了。做個網站地圖,可以讓用戶對敝網站的內容一目了然,能起到很好的導航作用。
鑒于上述原因,于是乎,俺就決定為俺地“赤兔英語網”做一個網站地圖。由于Google等搜索引擎所需的網站地圖必須是XML文件,所以俺決定做網頁形式和XML形式兩種網站地圖。我們的網站是用C#開發的,當然是使用C#語言來編寫俺地網站地圖了,赫赫。
首先,我們來看看,我們的網站地圖該怎么生成,怎么展現。簡單思考之后,我決定這樣做。網站首頁的菜單中添加“網站地圖”選項,其鏈接著網頁形式的網站地圖,頁面名字為sitemap.html;首頁的底部也添加鏈接“網站地圖”,其鏈接著XML格式的網站地圖,頁面名字為sitemap.xml。這兩個頁面生成程序在后臺添加。設置一個按鈕,管理員在一段時間內點擊該按鈕,直接生成這兩個文件,放在網站的根目錄下,供客戶端隨時調用。
下面,我們來看看生成網站地圖的代碼的具體實現。為了文章可讀性,我們從頂向下來對code實現過程做以介紹。
一、網站地圖的頂層設計
頂層的網站地圖生成按鈕的code為:
protected void BtnGenerateSitemap_Click(object sender, EventArgs e)
{
createHtmlSitemap();
createXMLSitemap();
WebUtility.ResponseScript("網站地圖生成完畢!",0);
}
上面code一目了然,createHtmlSitemap()用來生成html網站地圖,createXMLSitemap()用來生成XML網站地圖。
二、Html網站地圖的生成
我們先介紹Html網站地圖的生成。createHtmlSitemap()的code如下:
public void createHtmlSitemap()
{
FileInfo HtmlFile = null;
StreamWriter WriteHtmlFile = null;
string FilePath = Server.MapPath("sitemap.html");//獲取html文件路徑及名稱
HtmlFile = new FileInfo(FilePath);//創建html文件
WriteHtmlFile = HtmlFile.CreateText();
WriteHtmlFile.WriteLine("<html>");
WriteHtmlFile.WriteLine("<head>");
WriteHtmlFile.WriteLine("<meta http-equiv=Content-Type content=text/html;charset=UTF-8>");
WriteHtmlFile.WriteLine("<title>赤兔英語網 網站地圖</title>");
WriteHtmlFile.WriteLine("</head>");
WriteHtmlFile.WriteLine("<body>");
getHtmlSitemapData(WriteHtmlFile);
WriteHtmlFile.WriteLine("</body>");
WriteHtmlFile.WriteLine("</html>");
WriteHtmlFile.Close();
}
上述code創建了html文件sitemap.html,并使用對象StreamWriter書寫了sitemap.html。函數getHtmlSitemapData(WriteHtmlFile)完成了sitemap.html正文部分的組織。
需要注意的是,如果網站地圖中有中文,必須將charset設置為UTF-8。否則中文不能正常顯示。