欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#生成sitemap站点地图的方法

程序员文章站 2023-12-18 14:13:52
    sitemaps是google的一个和网站管理员相关的工具,有点象blog的rss功能,是一个方便自己的服务,如果大家都采用了这种方式...

    sitemaps是google的一个和网站管理员相关的工具,有点象blog的rss功能,是一个方便自己的服务,如果大家都采用了这种方式提交自己的更新的话,google就再也不用派出那么多爬虫辛辛苦苦的到处乱窜了,任何一个站点,只要有更新,便会自动“通知”google,方便google进行索引。

好像最近baidu也开始支持xml格式的sitemap的站点地图了。

目前网络上有很多免费的生成sitemap站点地图的工具,使用起来也比较方便。其原理就是抓取你指定的页面,获取页面上所有的链接,根据这些链接生成一个xml格式的sitemap站点地图文件。

但是这样做的缺点就是只能生成页面上有链接的sitemap站点地图,同时,站点地图需要手工上传到服务器才能使用。

下面就提供一种通过c#自动生成sitemap站点地图的方法,可以直接通过网站系统生成在服务器目录,而且根据自己的需求任意设置需要显示在sitemap站点地图中的链接。

复制代码 代码如下:

using system;
using system.collections.generic;
using system.linq;
using system.text;

namespace voodoo.other.seo
{
/// <summary>
/// 生成站点地图sitemap
/// (c) http://aizr.net
/// </summary>
public class sitemap
{
public list<pageinfo> url
{
get;
set;
}

/// <summary>
/// 生成sitemap字符串
/// </summary>
/// <returns></returns>
public string generatesitemapstring()
{
stringbuilder sb = new stringbuilder();
sb.appendline(“<?xml version=\”1.0\” encoding=\”utf-8\”?> “);
sb.appendline(“<urlset xmlns=\”http://www.sitemaps.org/schemas/sitemap/0.9\”> “);

foreach (pageinfo pi in url)
{
sb.appendline(“<url>”);
sb.appendline(string.format(“<loc>{0}</loc>”,pi.loc));
sb.appendline(string.format(“<lastmod>{0}</lastmod> “, pi.lastmod.tostring(“yyyy-mm-dd”)));
sb.appendline(string.format(“<changefreq>{0}</changefreq> “, pi.changefreq));
sb.appendline(string.format(“<priority>{0}</priority> “,pi.priority));
sb.appendline(“</url>”);
}

sb.appendline(“</urlset>”);
return sb.tostring();
}

/// <summary>
/// 保存site文件
/// </summary>
/// <param name=”filepath”>路径</param>
public void savesitemap(string filepath)
{
voodoo.io.file.write(filepath, generatesitemapstring());//保存在指定目录下
}
}

public class pageinfo
{
/// <summary>
/// 网址
/// </summary>
public string loc { get; set; }

/// <summary>
/// 最后更新时间
/// </summary>
public datetime lastmod { get; set; }

/// <summary>
/// 更新频繁程度
/// </summary>
public string changefreq{get;set;}

/// <summary>
/// 优先级,0-1
/// </summary>
public string priority { get; set; }
}
}

上一篇:

下一篇: