下面要讨论的是动态更新站点地图的问题.
其它的不多说,重点说一下动态更新的问题.想要使用站点地图必需新建一个站点地图文件Web.sitemap.这是一个XML格式的文件(尽管后缀不是.xml,但它仍然是一个XML格式的文件).既然是XML格式的文件,我们就可以使用.NET的XML类来对其进行修改.
比如:
XMldocument doc=new XMLdocument();
doc.load("Web.sitemap");
注意,这是可以正常读取的,因为Web.sitemap是一个XML格式文件.
到这里,对XML有了解的网友可能已经不需要下面的讲解,自己就能更新这个文件了.对XML不熟悉的网友请往下看.
那么如何更新这个Web.sitemap呢?请仔细的看一下XML的树型结构,如下
<?xml version="1.0" encoding="utf-8"?>
<siteMap>
</siteMap>
简单说明一下,首先是<?xml version="1.0" encoding="utf-8"?>,不多说,这是一个声明,XML文件必需有的.
其次就是<siteMap>标签这是根元素,所有的其它节点都由此派生,也不多说,XML文件必需有的.
然后就是最重要的<siteMapNode>节点了,这是Web.sitemap文件的核心.
我们都知道所谓站点地图无非就是以下的格式
首页-新闻-国内新闻-山东新闻-滨州新闻
如果想要显示这样的站点地图,就必需如下修改web.sitemap文件
<?xml version="1.0" encoding="utf-8"?>
<siteMap>
</siteMap>
和上面的给出的XML不同的仅仅是title属性,没错,title属性决定了显示内容.
然后我们来看一下description属性,这个属性可以不填("").
最重要的是url属性,它是值必须是一个你的项目中事实存在的url地址,属性值中不能有空格,以上两个条件少一个站点地图也不会正常显示,甚至不会出现.
好了,现在我们得到了一个站点地图:
首页-新闻-国内新闻-山东新闻-滨州新闻
下面的问题就是如何动态更新了
比如,我想在滨州新闻后加一个阳信新闻,如何做到呢?
第一步就是找到title为首页的节点.
在.NET中使用Xpath就可以实现(前提是已经删除xmlsn属性).
XMldocument doc=new XMLdocument();
doc.load("Web.sitemap");
xmlnode node=doc.selectnodes("/siteMap/siteMapNode[@title='首页']");
具体的xpath语法请另行参考.
找到了首页节点然后就是为其添加子节点了
xmlelement xe=doc.createlement("SiteMapNode");
xe.setarribute("url","");
xe.setarribute("title","阳信新闻");
xe.setarribute("description","");
node.appendchild((xmlnode)xe);
这样就完成了添加.url要按实际连接填写
- 本文标题: ASP.NET之sitemappath动态读取数据库加载祥细页面标题
- 文章分类:【.NET/Web】
- 非特殊说明,本文版权归【胡同里的砖头】个人博客 所有,转载请注明出处.