我的web.sitemap<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode url="~/index.aspx" title="首页"  description="首页">
    <siteMapNode url="~/articlelist.aspx?t=1" title="国际新闻"  description="国际新闻">
    </siteMapNode>
    <siteMapNode url="~/articlelist.aspx?t=2" title="国内新闻"  description="国内新闻">
    </siteMapNode>

  </siteMapNode>
</siteMap>例如国际新闻这个节点下面有很多篇国际新闻的文章,内容很多,而且新闻随时添加,这样web.sitemap里面肯定不能写死的,想求个可以动态的方法
  展示新闻的页面是article.aspx?pid=新闻的编号,我在这个页面里面放了一个SiteMapPath,想要也能正确展示正确的站点地址

解决方案 »

  1.   

    动态不就是在添加文章的时候同时输出xml咯!
      

  2.   


    那N篇文章的时候,那个xml很大很大啊 
      

  3.   


    网上搜索一下“sitemap”你就会明白了,asp.net里的sitemap是站点导航控件的数据源,作用是网站主要功能的导航,针对网站浏览者的。
    而我们通常所说的sitemap,是针对搜索引擎的,全站所有页面的索引。sitemap本身是xml文件(或者压缩后的gz文件),遵循sitemap协议,google、雅虎、必应这些搜索引擎都有接口让你提交sitemap,百度无视它,都是自己抓。
    它们是两个东西。微软搞混淆这两个概念太坑爹了。。
    如果你想做的是给用户看的站内功能导航,数据源可以自定义,不必是固定的xml文件的。不过我劝你还是先抛弃拖控件绑数据的习惯吧,站点导航控件就是鸡肋,自己写随心所欲。
    如果你是想做对搜索引擎友好的sitemap,建议你用工具生成。工具有很多,我只用过Google Sitemap Generator,很方便,装过之后会在iis中新增一个专门用于生成sitemap的站点(所以xp下的iis 5.1就歇菜吧),设定好生成间隔、文件大小等参数,它就会自动遍历你的站点里的所有链接和页面(包括article.aspx?pid=100这样的动态页),生成sitemap文件,超过设定的大小会分隔,然后会自动压缩存放到你的站点下,还会自动提交各搜索引擎。然后你可以在google的站长工具里看到sitemap的运行状态,收录情况等。