当前位置:编程学习 > C#/ASP.NET >>

求一个siteMap的例子,可以动态更新的


如题 

因为网站会带参数,而sitemap又是固定的,求解决方法 --------------------编程问答--------------------  protected void Button1_Click(object sender, EventArgs e)
    {
        writeMap("http://www.xxx.com", Server.MapPath("/sitemap.xml")); 
    }
 public static void writeMap(string _fullFileName, string mapPath)
    {
        string fullFileName = _fullFileName;
        string strLoc = string.Empty;
        string siteMapPath = mapPath;

        FileInfo XMLFile = null;
        StreamWriter writerXMLFile = null;
        XMLFile = new FileInfo(siteMapPath);

        writerXMLFile = XMLFile.CreateText();
        //添加sitMap的头 
        writerXMLFile.WriteLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
        writerXMLFile.WriteLine("<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">");
        //商品详细 
        DataTable dt = new DataTable();
        dt = products.select();
        for (int i6 = 0; i6 < dt.Rows.Count; i6++)
        {
            int nid = int.Parse(dt.Rows[i6]["id"].ToString());
            string nurl = "/xxxx.aspx?aid=" + dt.Rows[i6]["id"].ToString();
            strLoc = fullFileName + nurl;
            addXMLSitMap(writerXMLFile, strLoc, 0.8);
        }
    }
/// <summary> 
    /// 生成站点地图中间部分 
    /// </summary> 
    /// <param name="writerFile"></param> 
    /// <param name="strLoc"></param> 
    /// <param name="priority"></param> 
    private static void addXMLSitMap(StreamWriter writerFile, string strLoc, double priority)
    {
        writerFile.WriteLine(" <url>");
        writerFile.WriteLine("<loc>" + strLoc + "</loc>");
        writerFile.WriteLine("<lastmod>" + DateTime.Now.ToString("yyyy-MM-dd") + "</lastmod>");
        writerFile.WriteLine("<changefreq>daily</changefreq>");
        writerFile.WriteLine("<priority>" + priority.ToString("0.0") + "</priority>");
        writerFile.WriteLine(" </url>");
    }  --------------------编程问答-------------------- 做个服务程序,实时更新XML。
--------------------编程问答-------------------- 1、添加一个网站地图项 Web.sitemap项


2、在 Web.sitemap项的写法如下:


<?xml version="1.0" encoding="utf-8"?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0">
<siteMapNode url="default.aspx" title="首页" description="">
    <siteMapNode url="Supply.aspx" title="产品信息" description="" >
      <siteMapNode url="productdetails.aspx" title="产品详细信息" description="" />
    </siteMapNode>
<siteMapNode url="register.aspx" title="新用户注册"/>
    <siteMapNode url="Demand.aspx" title="产品信息" description="">      
    </siteMapNode>
    <siteMapNode url="Projects.aspx" title="招投标信息" description="">
      <siteMapNode url="DownLoad.aspx" title="相关表格下载" description="" />
      <siteMapNode url="ProjectInfor.aspx" title="招投标详细信息" description="" />
    </siteMapNode>
    <siteMapNode url="newsfront.aspx" title="新闻" description="">
      <siteMapNode url="news_detail.aspx" title="行业资讯详细信息" description="" />
      <siteMapNode url="company_details.aspx" title="会员展厅详细信息" description="" />
      <siteMapNode url="ManuscriptFront.aspx" title="在线投稿" description="" />
      <siteMapNode url="subject_detail.aspx" title="专题栏目详细信息" description="" />
      <siteMapNode url="expertinterview_detail.aspx" title="人物专访详细信息" description="" />
    </siteMapNode>
    <siteMapNode url="ForeTrain.aspx" title="培训咨询" description="">
      <siteMapNode url="TrainInfor.aspx" title="培训详细信息" description="" />
      <siteMapNode url="BusiHandBook.aspx" title="商务手册" description="" />
      <siteMapNode url="Technology.aspx" title="技术咨询" description="">
        <siteMapNode url="TechInfor.aspx" title="技术信息" description=""/>
      </siteMapNode>
      <siteMapNode url="Expert.aspx" title="专家顾问团" description="" />
    </siteMapNode>
    <siteMapNode url="ExhibitFront.aspx" title="机电信息展览馆" description="">
      <siteMapNode url="exhibit_detail.aspx" title="会展详细信息" description=""/>
    </siteMapNode>
</siteMapNode>
</siteMap>


3、在web.config文件中的配置如下:


<system.web>
<siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
      <providers>
        <add name="XmlSiteMapProvider"
            description="SiteMap provider which reads in .sitemap XML files."
            type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
            siteMapFile="web.sitemap"/>
      </providers>
    </siteMap>
</system.web>


4、在页面需要网站地图的位置放入SiteMapPath控件,设置SiteMapPath的SiteMapProvider属性为config文件中的name的值:XmlSiteMapProvider 
即完成网站地图的制作
--------------------编程问答-------------------- 学习。。。 --------------------编程问答-------------------- http://www.cnblogs.com/silicon-fado/archive/2008/07/11/1240543.html --------------------编程问答-------------------- 呵呵.
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,