站点地图概述【转载】
站点地图是一种扩展名为.sitemap的标准XML文件,用来定义整个站点的结构、各页面的链接、相关说明和其他相关定义。站点地图的文档结构是由多个不同层级的节点元素组成的,该文件中包含一个根节点siteMap,在根节点下包括多个siteMapNode字节点,siteMapNode节点包含多个属性如下表所示:
名称 |
说明 |
url |
设置用于节点导航的url地址。在整个站点地图文件中,该属性值必须唯一。 |
title |
设置节点名称。 |
description |
设置节点说明文字。 |
keyword |
定义表示当前节点的关键字。 |
roles |
定义允许查看该站点地图文件的角色集合。多个角色可使用(;)和(,)进行分隔。 |
siteMapFile |
设置包含其他相关SiteMapNode元素的站点地图文件。 |
Provider |
定义处理其他站点地图文件的站点导航提供程序名称。默认值为XmlSiteMapProvider。 站点地图示例
|
<?xml version="1.0" encoding="utf-8" ?>
<siteMap>
<siteMapNode title="主页" url="default.aspx">
<siteMapNode title="计算机书籍" url="sitemapsA.aspx">
<siteMapNode title="编程语言" url="sitemapsA1.aspx" />
<siteMapNode title="网络应用" url="sitemapsA2.aspx" />
<siteMapNode title="办公软件" url="sitemapsA3.aspx" />
</siteMapNode>
<siteMapNode title="人文类书籍" url="sitemapsB.aspx">
<siteMapNode title="历史" url="sitemapsB4.aspx">
<siteMapNode title="近代史" url="sitemapsB4a.aspx" />
<siteMapNode title="现代史" url="sitemapsB4b.aspx" />
</siteMapNode>
<siteMapNode title="经济" url="sitemapsB5.aspx" />
<siteMapNode title="教育" url="sitemapsB6.aspx" />
</siteMapNode>
<siteMapNode title="自然科学书籍" url="sitemapsC.aspx" />
</siteMapNode>
</siteMap>
配置多个站点地图和站点地图提供程序
如果想在一个站点配置多个站点地图和站点地图提供程序,需修改 web.config 文件,即必须使用 add 属性将自定义站点地图提供程序添加到 Web.config 文件中的 <system.web> 节点中.且可设置其中一个站点地图提供程序作为默认站点地图提供程序。
如下面的 Web.config 文件中添加了两个 XmlSiteMapProvider ,分别是defaultSiteMap和adminSiteMap.其中defaultSiteMap被设为默认站点地图提供程序。
<system.web>
<siteMap defaultProvider="defaultSiteMap">
<providers>
<add
name="defaultSiteMap"
type="System.Web.XmlSiteMapProvider"
siteMapFile="~/Web.sitemap"/>
<add
name="adminSiteMap"
type="System.Web.XmlSiteMapProvider"
siteMapFile="~/admin/Web.sitemap"/>
</providers>
</siteMap>
</system.web>
它们分别是默认站点地图提供程序和管理文件夹中站点地图提供程序.
下面就可以分别使用这两个站点地图提供程序了:
<asp:SiteMapPath ID="SiteMapPath1" runat="server" SiteMapProvider="defaultSiteMap"></asp:SiteMapPath>此 SiteMapPath 的 SiteMapProvider 省略,因为它使用的是默认站点地图提供程序。
下面使用 adminSiteMap 站点地图提供程序
<asp:SiteMapPath ID="SiteMapPath2" runat="server" SiteMapProvider="adminSiteMap"></asp:SiteMapPath>
当然,其它的导航控件如 menu,treeview 也可类似使用之。