.net 生成网站地图 sitemap.xml

1.此处为Demo,借鉴别人的生成 xml
//创建xml文件方法一
    protected void btn1_OnClick(object sender, EventArgs e)
    {
         XmlText xmltext;
         XmlDocument xmldoc = new XmlDocument(); 

        //加入XML的声明段落
         XmlNode xmlnode = xmldoc.CreateXmlDeclaration("1.0", "gb2312", null);
         xmldoc.AppendChild(xmlnode); 

        //加入一个根元素
         XmlElement xmlelem = xmldoc.CreateElement("", "bookstore", "");
         xmltext = xmldoc.CreateTextNode("");
         xmlelem.AppendChild(xmltext);
         xmldoc.AppendChild(xmlelem); 

        //加入一个子元素
         XmlElement xmlelem1 = xmldoc.CreateElement("", "book", "");
         xmltext = xmldoc.CreateTextNode("");
         xmlelem1.AppendChild(xmltext);
        //为子元素"book"增加两个属性
         xmlelem1.SetAttribute("genre", "", "fantasy");
         xmlelem1.SetAttribute("ISBN", "2-3631-4"); 

         xmldoc.ChildNodes.Item(1).AppendChild(xmlelem1); 

        //创建三个子元素的子元素
         XmlElement xmlelem2 = xmldoc.CreateElement("", "title", "");
         xmltext = xmldoc.CreateTextNode("Oberon's Legacy");
        xmlelem2.AppendChild(xmltext);
         xmldoc.ChildNodes.Item(1).AppendChild(xmlelem1).AppendChild(xmlelem2); 

         XmlElement xmlelem3 = xmldoc.CreateElement("", "author", "");
         xmltext = xmldoc.CreateTextNode("Corets, Eva");
         xmlelem3.AppendChild(xmltext);
         xmldoc.ChildNodes.Item(1).AppendChild(xmlelem1).AppendChild(xmlelem3); 

         XmlElement xmlelem4 = xmldoc.CreateElement("", "price", "");
         xmltext = xmldoc.CreateTextNode("5.95");
         xmlelem4.AppendChild(xmltext);
         xmldoc.ChildNodes.Item(1).AppendChild(xmlelem1).AppendChild(xmlelem4);
         xmldoc.Save(Server.MapPath("bookstore.xml")); //保存
     } 

    //创建xml文件方法二
    protected void btn2_OnClick(object sender, EventArgs e)
    {
         XmlDocument xmldoc = new XmlDocument(); //创建空的XML文档
         xmldoc.LoadXml("<?xml version='1.0' encoding='gb2312'?>" +
         "<bookstore>" +
         "<book genre='fantasy' ISBN='2-3631-4'>" +
         "<title>Oberon's Legacy</title>" +
         "<author>Corets, Eva</author>" +
         "<price>5.95</price>" +
         "</book>" +
         "</bookstore>");
         xmldoc.Save(Server.MapPath("bookstore2.xml")); //保存
     } 

如果如下:

<?xml version="1.0" encoding="gb2312" ?>
<bookstore>
  <book genre="fantasy" ISBN="2-3631-4">
  <title>Oberon's Legacy</title>
  <author>Corets, Eva</author>
  <price>5.95</price>
  </book>
</bookstore>

不是我想要的网站地图xml文件。

2.以下是我自己根据实际情况写的

using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System.Xml;

namespace Helper
{
    public class SitemapXml
    {
        private const string Xmlns = "http://www.sitemaps.org/schemas/sitemap/0.9";
        private const string XmlnsXsi = "http://www.w3.org/2001/XMLSchema-instance";
        private const string XsiSchemaLocation = "http://www.sitemaps.org/schemas/sitemap/0.9  http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd";

        /// <summary>
        /// 生成SiteMap地图
        /// </summary>
        /// <param name="siteMaps">需要生成的 对象列表</param>
        /// <param name="saveFileName">设置文件保存名称</param>
        /// <param name="changefreq">更新周期</param>
        /// <param name="savePath">xml文件保存路径</param>
        /// <returns></returns>
        public static bool CreateSiteMapXml(List<SiteMap> siteMaps, string savePath = "/", string saveFileName = "sitemap", string changefreq = "weekly")
        {
            //保存创建好的XML文档
            string filename = saveFileName + ".xml";
            string path = System.Web.HttpContext.Current.Server.MapPath(savePath) + filename;

            //先创建XML,返回路径
            var xmldoc = new XmlDocument();
            //加入XML的声明段落,<?xml version="1.0" encoding="gb2312"?>
            XmlDeclaration xmldecl = xmldoc.CreateXmlDeclaration("1.0", "UTF-8", null);
            xmldoc.AppendChild(xmldecl);

            //加入一个根元素
            XmlNode xmlelem = xmldoc.CreateElement("", "urlset", "");
            //添加属性
            XmlAttribute attr = xmldoc.CreateAttribute("xmlns");
            attr.Value = Xmlns;
            if (xmlelem.Attributes != null) xmlelem.Attributes.SetNamedItem(attr);

            attr = xmldoc.CreateAttribute("xmlns:xsi");
            attr.Value = XmlnsXsi;
            if (xmlelem.Attributes != null) xmlelem.Attributes.SetNamedItem(attr);

            attr = xmldoc.CreateAttribute("xsi:schemaLocation");
            attr.Value = XsiSchemaLocation;
            if (xmlelem.Attributes != null) xmlelem.Attributes.SetNamedItem(attr);

            xmldoc.AppendChild(xmlelem);
            string lastmod = DateTime.Now.ToString("yyyy-MM-dd");
            for (int i = 0; i < siteMaps.Count; i++)
            {
                XmlNode root = xmldoc.SelectSingleNode("urlset");//查找<urlset>
                if (root == null)
                {
                    //加入一个根元素
                    xmlelem = xmldoc.CreateElement("", "urlset", "");
                    //添加属性
                    attr = xmldoc.CreateAttribute("xmlns");
                    attr.Value = Xmlns;
                    if (xmlelem.Attributes != null) xmlelem.Attributes.SetNamedItem(attr);

                    attr = xmldoc.CreateAttribute("xmlns:xsi");
                    attr.Value = XmlnsXsi;
                    if (xmlelem.Attributes != null) xmlelem.Attributes.SetNamedItem(attr);

                    attr = xmldoc.CreateAttribute("xsi:schemaLocation");
                    attr.Value = XsiSchemaLocation;
                    if (xmlelem.Attributes != null) xmlelem.Attributes.SetNamedItem(attr);

                    xmldoc.AppendChild(xmlelem);
                    i = 0;
                    continue;
                }
                XmlElement xe1 = xmldoc.CreateElement("url");//创建一个<url>节点 

                XmlElement xmlelem1 = xmldoc.CreateElement("", "loc", "");
                XmlText xmltext = xmldoc.CreateTextNode(siteMaps[i].Loc);
                xmlelem1.AppendChild(xmltext);
                xe1.AppendChild(xmlelem1);

                xmlelem1 = xmldoc.CreateElement("", "priority", "");
                xmltext = xmldoc.CreateTextNode(siteMaps[i].Priority);
                xmlelem1.AppendChild(xmltext);
                xe1.AppendChild(xmlelem1);

                xmlelem1 = xmldoc.CreateElement("", "lastmod", "");
                xmltext = xmldoc.CreateTextNode(lastmod);
                xmlelem1.AppendChild(xmltext);
                xe1.AppendChild(xmlelem1);

                xmlelem1 = xmldoc.CreateElement("", "changefreq", "");
                xmltext = xmldoc.CreateTextNode(changefreq);
                xmlelem1.AppendChild(xmltext);
                xe1.AppendChild(xmlelem1);

                root.AppendChild(xe1);//添加到<urlset>节点中
            }
            try
            {
                //然后在保存到源位置
                xmldoc.AppendChild(xmlelem);
                xmldoc.Save(path);
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }

    }

    /// <summary>
    ///
    /// <url>
    /// <loc>http://news.chinahbnet.com/2014/8/19/15352.html</loc>
    /// <priority>0.5</priority>
    /// <lastmod>2014-08-19</lastmod>
    /// <changefreq>weekly</changefreq>
    /// </url>
    ///
    /// </summary>
    public class SiteMap
    {
        /// <summary>
        /// 链接地址
        /// 如:http://news.chinahbnet.com
        /// </summary>
        public string Loc { get; set; }
        /// <summary>
        /// 网页权重
        /// 0.1 - 1
        /// </summary>
        public string Priority { get; set; }
        /// <summary>
        /// 生成日期
        /// 2014-08-19
        /// </summary>
        public string Lastmod { get; set; }
        /// <summary>
        /// 更新周期
        /// always  经常
        /// hourly  每小时
        /// daily   每天
        /// weekly  每周
        /// monthly 每月
        /// yearly  每年
        /// never   从不
        /// </summary>
        public string Changefreq { get; set; }

    }
}

生成的结果为:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9  http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
  <url>
    <loc>http://www.baidu.com</loc>
    <priority>1.00</priority>
    <lastmod>2014-08-19</lastmod>
    <changefreq>weekly</changefreq>
  </url>
</urlset>

希望可以帮助到你!

.net 生成网站地图 sitemap.xml

时间: 2024-10-24 20:23:32

.net 生成网站地图 sitemap.xml的相关文章

网站地图sitemap.xml的格式

URL列表—XML格式及规范说明: 标签名称  属性  标签说明  标签类型  标签限制  可选/必选  urlset  / urlset用来标记整个文档的开头  /  /  必选  url  / url标记每条信息的开始和结束  /  最多出现无限次   必选  loc  / 该条数据的存放地址  url  最小长度1个字符 最大长度256个字符 以"http://"开头   必选  lastmod  / 指该条数据的最新一次更新时间  日期  时间格式为yyyy-mm-dd   可

织梦dedecms中html和xml格式的网站地图sitemap制作方法

sitemap是网站上各网页的列表.创建并提交sitemap有助于百度(Google)发现并了解您网站上的所有网页,包括百度通过传统抓取方式可能找不到的网页.还可以使用sitemap提供有关你网站的其他信息,如上次更新日期.sitemap文件的更新频率等,供百度 (Google)spider参考. 百度(Google)对已提交的数据,不保证一定会抓取及索引所有网址.但是,百度(Google)会使用sitemap中的数据来了解网站的结构等信息,这样可以帮助百度改进抓取策略,并在日后能更好地对网站进

php生成百度站点地图sitemap.xml

<?php header("Content-type:text/html;charset=utf-8"); //php生成百度站点地图sitemap.xml //http://www.baidu.com/search/sitemaptools_help.html include("../config.inc.php"); mysql_connect($CFG['db_host'] ,$CFG['db_user'],$CFG['db_pass']) or die

米扑科技的开源项目:sitemap-php 自动生成网站地图

米扑科技旗下的产品,近期正在做SEO网站优化,其中子需求之一是调研实现了网站地图(sitemap.xml) 封装简化了许多功能模块,现在分享出来,源代码可在Github上下载,有简单的示例. Github 开源网址: sitemap-php What is sitemap-php ? sitemap-php 是一个轻量级.简单快速生成网站地图的开源项目,由北京米扑科技有限公司(mimvp.com)开发分享. 通过简单的配置定义,一个函数createSitemap(),可自动生成sitemap.x

网站地图sitemap

网站地图是根据网站的结构.框架.内容,生成的导航网页,是一个网站所有链接的容器.很多网站的连接层次比较深,蜘蛛很难抓取到,网站地图可以方便搜索引擎或者网络蜘蛛抓取网站页面,了解网站的架构,为网络蜘蛛指路,增加网站内容页面的收录概率.网站地图一般存放在域名根目录下并命名为sitemap,比如http://www.liujiangblog.com/sitemap.xml. 一个典型的sitemap,其内容片段如下: This XML file does not appear to have any

django网站地图sitemap

网站地图是根据网站的结构.框架.内容,生成的导航网页,是一个网站所有链接的容器.很多网站的连接层次比较深,蜘蛛很难抓取到,网站地图可以方便搜索引擎或者网络蜘蛛抓取网站页面,了解网站的架构,为网络蜘蛛指路,增加网站内容页面的收录概率.网站地图一般存放在域名根目录下并命名为sitemap,比如http://www.liujiangblog.com/sitemap.xml. 一个典型的sitemap,其内容片段如下: This XML file does not appear to have any

WordPress免插件生成完整站点地图(sitemap.xml)的php代码

让这个代码更加完善,可以同时生成首页.文章.单页面.分类和标签的 sitemap! 一.PHP 代码 <?php require('./wp-blog-header.php'); header("Content-type: text/xml"); header('HTTP/1.1 200 OK'); $posts_to_show = 1000; echo '<?xml version="1.0" encoding="UTF-8"?&g

dedecms 织梦更改rss的路径、网站地图sitemap的路径

织梦网站地图的模板文件在哪 \templets\plus\sitemap.htm 织梦版本:V5.6V5.5及其它版本位置有所不同 修改后台管理文件夹中的dede/makehtml_map.php,在文件中搜索rss找到第17行和22行,删除/data17行 $murl = $cfg_cmspath."/sitemap.html";22行 $murl = $cfg_cmspath."/rssmap.html"; 修改include/arc.rssview.class

生成 网站“面包屑” XML

using System; using System.Collections.Generic; using System.IO; using System.Threading; using System.Xml; namespace Helper { public class SitemapXml { private const string Xmlns = "http://www.sitemaps.org/schemas/sitemap/0.9"; private const str