使用ASP.NET生成网站Sitemap.xml地图文件

本文介绍了如何使用C#编写代码来创建一个用于搜索引擎爬虫的sitemap.xml文件,包括设置根目录和文章链接的结构,以提高网站内容的抓取效率。
摘要由CSDN通过智能技术生成

网站sitemap.xml文件的作用主要是搜索引擎蜘蛛看的,方便蜘蛛的爬取和收录。下方代码是用c#写的生成sitemap.xml地图文件的代码,可根据实际情况修改。

        /// <summary>
        /// 生成SiteMap地图
        /// </summary>
        /// <returns></returns>
        public static bool CreateSiteMapXml()
        {
            //先创建XML,返回路径
            var xmldoc = new XmlDocument();
            //加入XML的声明段落
            XmlDeclaration xmldecl = xmldoc.CreateXmlDeclaration("1.0", "UTF-8", null);
            xmldoc.AppendChild(xmldecl);
            //加入一个根元素
            XmlNode xmlelem = xmldoc.CreateElement("", "urlset", "");
            //添加属性
            XmlAttribute attr = xmldoc.CreateAttribute("xmlns");
            attr.Value = "http://www.sitemaps.org/schemas/sitemap/0.9";
            if (xmlelem.Attributes != null) xmlelem.Attributes.SetNamedItem(attr);

            xmldoc.AppendChild(xmlelem);

            XmlNode root = xmldoc.SelectSingleNode("urlset");//查找<urlset> 

            #region 根目录
            XmlElement xe1 = xmldoc.CreateElement("url");//创建一个<url>节点 
            XmlElement xmlelem1 = xmldoc.CreateElement("", "loc", "");
            XmlText xmltext = xmldoc.CreateTextNode("https://www.qizhantong.net/");
            xmlelem1.AppendChild(xmltext);
            xe1.AppendChild(xmlelem1);

            xmlelem1 = xmldoc.CreateElement("", "lastmod", "");
            xmltext = xmldoc.CreateTextNode(DateTime.Now.ToString("yyyy-MM-dd"));//最后更新日期当前的日期
            xmlelem1.AppendChild(xmltext);
            xe1.AppendChild(xmlelem1);

            xmlelem1 = xmldoc.CreateElement("", "changefreq", "");
            xmltext = xmldoc.CreateTextNode("Daily");//变化频率 设置按天更新
            xmlelem1.AppendChild(xmltext);
            xe1.AppendChild(xmlelem1);

            xmlelem1 = xmldoc.CreateElement("", "priority", "");
            xmltext = xmldoc.CreateTextNode("1.0");//首页的优先级设置为最高
            xmlelem1.AppendChild(xmltext);
            xe1.AppendChild(xmlelem1);
            root.AppendChild(xe1);//添加到<urlset>节点中 
            #endregion

            #region 保存文章
            DataTable articleDT = null;// 这里是你的文章数据 根据你的实际情况写;
            foreach (DataRow row in articleDT.Rows)
            {
                xe1 = xmldoc.CreateElement("url");//创建一个<url>节点 

                xmlelem1 = xmldoc.CreateElement("", "loc", "");
                xmltext = xmldoc.CreateTextNode("https://www.qizhantong.net/" + row["id"] + ".html");
                xmlelem1.AppendChild(xmltext);
                xe1.AppendChild(xmlelem1);

                xmlelem1 = xmldoc.CreateElement("", "lastmod", "");
                xmltext = xmldoc.CreateTextNode(Utils.ObjectToDateTime(row["add_time"]).ToString("yyyy-MM-dd"));//最后更新日期为文章的添加日期
                xmlelem1.AppendChild(xmltext);
                xe1.AppendChild(xmlelem1);

                xmlelem1 = xmldoc.CreateElement("", "changefreq", "");
                xmltext = xmldoc.CreateTextNode("Daily");//变化频率 设置按天更新
                xmlelem1.AppendChild(xmltext);
                xe1.AppendChild(xmlelem1);

                xmlelem1 = xmldoc.CreateElement("", "priority", "");
                xmltext = xmldoc.CreateTextNode("0.8");//内页的优先值无需设置最高
                xmlelem1.AppendChild(xmltext);
                xe1.AppendChild(xmlelem1);
                root.AppendChild(xe1);
            }
            #endregion

            try
            {
                //然后在保存到源位置
                xmldoc.AppendChild(xmlelem);
                xmldoc.Save(System.Web.HttpContext.Current.Server.MapPath("/sitemap.xml"));
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值