首页 .NET/Web ASP.NET之sitemappath动态读取数据库加载祥细页面标题

ASP.NET之sitemappath动态读取数据库加载祥细页面标题

作者:胡同里的砖头 围观群众:1207 更新于:2013-12-19

 

下面要讨论的是动态更新站点地图的问题.

其它的不多说,重点说一下动态更新的问题.想要使用站点地图必需新建一个站点地图文件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>
  <siteMapNode url="~/Default.aspx" title="Home" description="">
    <siteMapNode url="~/Default.aspx?board=UnserPortfolio" title="UnserPortfolio" description="Unser Portfolio">
    </siteMapNode>
    <siteMapNode url="~/Default.aspx?board=Topographie" title="Topographie" description="Topographie">
    </siteMapNode>
    <siteMapNode url="~/Default.aspx?board=Vektorisierung" title="Vektorisierung" description="Vektorisierung">
    </siteMapNode>
    <siteMapNode url="~/Default.aspx?board=Dokumenten" title="Dokumenten" description="Dokumenten">
    </siteMapNode>
    <siteMapNode url="~/Pages/Angeboterstellen.aspx" title="Angeboterstellen" description="Angeboterstellen">
    </siteMapNode>
  </siteMapNode>
</siteMap>

 说明:新建的web.sitemap可能会有xmlns属性,如果不删除,Xpath无效,所以我删除了这个属性.

 

简单说明一下,首先是<?xml version="1.0" encoding="utf-8"?>,不多说,这是一个声明,XML文件必需有的.

其次就是<siteMap>标签这是根元素,所有的其它节点都由此派生,也不多说,XML文件必需有的.

然后就是最重要的<siteMapNode>节点了,这是Web.sitemap文件的核心.

我们都知道所谓站点地图无非就是以下的格式

 

首页-新闻-国内新闻-山东新闻-滨州新闻

 

如果想要显示这样的站点地图,就必需如下修改web.sitemap文件

 

<?xml version="1.0" encoding="utf-8"?>
<siteMap>
  <siteMapNode url="~/Default.aspx" title="首页" description="">
    <siteMapNode url="~/Default.aspx?board=UnserPortfolio" title="新闻" description="Unser Portfolio">
    </siteMapNode>
    <siteMapNode url="~/Default.aspx?board=Topographie" title="国内新闻" description="Topographie">
    </siteMapNode>
    <siteMapNode url="~/Default.aspx?board=Vektorisierung" title="山东新闻" description="Vektorisierung">
    </siteMapNode>
    <siteMapNode url="~/Default.aspx?board=Dokumenten" title="滨州新闻" description="Dokumenten">
    </siteMapNode>
  </siteMapNode>
</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】
  • 非特殊说明,本文版权归【胡同里的砖头】个人博客 所有,转载请注明出处.
留言评论
站点声明:
1、本站【胡同里的砖头】个人博客,借鉴网上一些博客模板,取其各优点模块自行拼装开发,本博客开发纯属个人爱好。
2、所有笔记提供给广大用户交流使用,可转载,可复制,纯个人开发所遇问题锦集记录使用
Copyright © huzlblog.com All Rights Reserved. 备案号:苏ICP备2021056683号-8