C# 生成网站地图SiteMap.xml
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通常是告诉蜘蛛网站有哪些有效内容