C# 生成网站地图SiteMap.xml
参考百度的SiteMap标准
代码如下:首先创建Url实体
///Url链接实体 public class MapUrl { public MapUrl(string loc, string lastmod, string changefreq, string priority) { this.loc = loc; this.lastmod = lastmod; this.changefreq = changefreq; this.priority = priority; } /// <summary> /// 链接地址 例如 http://wwww.yuantk.com /// </summary> public string loc { get; private set; } /// <summary> /// 最后更新时间 /// </summary> public string lastmod { get; private set; } /// <summary> /// 更新频率 /// </summary> public string changefreq { get; private set; } /// <summary> /// 链接优先级 /// </summary> public string priority { get; private set; } }
/// <summary> /// 更新网站地图 创建sitemap的代码 /// </summary> /// <param name="mapUrls">提交的url实体链接数据</param> /// <param name="xmlFileName">网站地图的存储位置 文件格式是xml</param> /// <returns></returns> public static bool Update(this MapUrl[] mapUrls, string xmlFileName) { try { StringBuilder SiteMapXML = new StringBuilder(); SiteMapXML.AppendLine("<?xml version =\"1.0\" encoding =\"UTF-8\"?>"); //SiteMapXML.AppendLine("<urlset xmlns =\"http://www.sitemaps.org/schemas/sitemap/0.9\">"); SiteMapXML.AppendLine("<urlset>"); foreach (MapUrl map in mapUrls) { SiteMapXML.AppendLine("<url>"); SiteMapXML.AppendLine(string.Format("<loc>{0}</loc>", map.loc)); SiteMapXML.AppendLine(string.Format("<lastmod>{0}</lastmod>", map.lastmod)); SiteMapXML.AppendLine(string.Format("<changefreq>{0}</changefreq>", map.changefreq)); SiteMapXML.AppendLine(string.Format("<priority>{0}</priority>", map.priority)); SiteMapXML.AppendLine("</url>"); } SiteMapXML.AppendLine("</urlset>"); string xml = SiteMapXML.ToString(); File.WriteAllText(xmlFileName, xml); return true; } catch { return false; } }
调用方法生成的文件放置于网站任意可访问的目录 然后对应对应网络地址提交给搜索引擎即可 具体使用可自行百度 以下是对于地图文件的一个说明
一、Sitemap格式:
Sitemap网站地图可以采用如下三种格式的文件向搜索引擎提交,文件编码可以是UTF-8或GBK:
1)标准的XML格式文件
2)文本TXT格式文件
3)Sitemap索引文件(可同时包含多个Sitemap文件)
二、Sitemap大小:**
1)单个Sitemap文件:大小不超过10MB,且包含不超过50000个网址。如果网站所包含的网址超过50,000个,则可将列表分割成多个Sitemap文件,放在Sitemap索引中。
2)单个Sitemap索引文件:大小不能超过500M,如果超过请提交多个Sitemap索引文件接口。
三、XML格式Sitemap说明
网站地图XML格式举例
<xml version="1.0" encoding="utf-8"> <!-- XML文件需以utf-8编码--> <urlset> <!--必填--> <url> <!--必填,定义某一个链接的入口,每一条数据必须要用<url>和</url>来标示 --> <loc>http://www.xxxxxx.html/000000.html</loc> <!--必填,URL长度限制在256字节内--> <!--更新时间标签,非必填,用来表示最后更新时间--> <lastmod>2012-12-01</lastmod> <!--更新频率标签,非必填,用来告知引擎页面的更新频率 --> <changefreq>daily</changefreq> <!--优先权标签,优先权值0.0-1.0,用来告知引擎该条url的优先级--> <priority>0.8</priority> </url> </urlset>
网站地图XML标签说明
| 标签名称? | 属性 | 标签说明 | 标签类型 | 标签限制 | 可选/必选 |
|---|---|---|---|---|---|
| changefreq | / | 标示数据更新频率 | 字符串 | 有效值为:always、hourly、daily、weekly、monthly、yearly、never | 可选 |
| lastmod | / | 标示数据最新一次更新时间 | 日期 | 时间格式为yyyy-mm-dd | 可选 |
| loc | / | 标示该条数据的存放地址 | url |
最小长度1个字符 最大长度256个字符 以"http://"开头 |
必选 |
| priority | / | 标示优先值 | 小数 | [0.0 1.0](大于等于0小于等于1,保留一位小数)例如:< priority >0.8< priority > | 可选 |
| url | / | url地址的开始和结束 | / | 最多出现无限次 |
必选 |
| urlset | / | urlset用来标记整个文档的开头 | / | / | 必选 |
总结:Sitemap通常是告诉蜘蛛网站有哪些有效内容