『QQ:1353814576』

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通常是告诉蜘蛛网站有哪些有效内容