基于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。否则中文不能正常显示。