using System.Xml;
public class SiteMapHelper
{
public List<UrlModel> GetImagesInfo(string requestPath)
{
List<UrlModel> list = new List<UrlModel>();
string[] parms = requestPath.Split('/');
if (parms[1] != null && parms[2] != null)
{
//当前模块
string currentModel = parms[1];
//当前页面
string currentPage = parms[2];
ImageUrl model = new ImageUrl();
string xmlFilePath = HttpContext.Current.Server.MapPath("~/Config/SiteMapSetting.xml");
XmlDocument doc = new XmlDocument();
doc.Load(xmlFilePath);
XmlNode xn = doc.SelectSingleNode("items");
XmlNodeList xnList = xn.ChildNodes;
if (xnList.Count > 0)
{
foreach (XmlElement xe in xnList)
{
if (xe.Attributes["name"].Value.ToLower() == currentModel.ToLower())
{
UrlModel url = new UrlModel();
url.Url = xe.Attributes["url"].Value;
url.Name = xe.Attributes["show"].Value;
url = this.ModuleUrlRewrite(currentModel,url);
list.Add(url);
XmlNodeList allSubNodes = xe.ChildNodes;
if (allSubNodes.Count > 0)
{
foreach (XmlElement item in allSubNodes)
{
if (item.Attributes["name"].Value.Equals(currentPage, StringComparison.CurrentCultureIgnoreCase))
{
url = new UrlModel();
url.Url = currentPage;
url.Name = item.Attributes["show"].Value;
list.Add(url);
}
}
}
}
}
}
return list;
}
return null;
}
/// <summary>模块url特殊情况的,如请求Login/Xxx.aspx 其SiteMap分组URL转成Company分组
/// </summary>
/// <param name="moduleName">模块名</param>
/// <param name="url">当前URL模型</param>
/// <returns></returns>
private UrlModel ModuleUrlRewrite(string moduleName, UrlModel url)
{
if (moduleName.Equals("login", StringComparison.CurrentCultureIgnoreCase))
{
url.Url = "/Company/" + url.Url;
}
return url;
}
}
public class UrlModel
{
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
private string _url;
public string Url
{
get { return _url; }
set { _url = value; }
}
}
SiteMapSetting.xml
<?xml version="1.0" encoding="utf-8" ?>
<items>
<model name="Company" url="EmploreeList.aspx" show="基础设置">
<page name="EmploreeList.aspx" show="人才库" />
</model>
<model name="Login" url="EmploreeList.aspx" show="基础设置">
<page name="Zuzhijiagou.aspx" show="组织架构" />
</model>
<model name="ModelManage" url="TaskList.aspx" show="智能建模">
<page name="TaskList.aspx" show="模型列表" />
<page name="Step1.aspx" show="提交建模需求" />
<page name="UnfinTaskList.aspx" show="填写建模问卷" />
<page name="LatChoice.aspx" show="调整能力模型"></page>
</model>
<model name="AbilityAccess" url="DoneProject.aspx" show="多源反馈">
<page name="DoneProject.aspx" show="评估列表" />
<page name="SucessorFirst.aspx" show="接班人计划" />
<page name="SucessorSecond.aspx" show="接班人计划" />
</model>
<model name="PersonTest" url="FinishPos.aspx" show="定制选才">
<page name="PositionTest.aspx" show="岗位招聘" />
<page name="FinishPos.aspx" show="测评列表" />
</model>
<model name="AbilityTeam" url="DoneProject.aspx" show="团队竞争力">
<page name="DoneProject.aspx" show="团队项目列表" />
</model>
<model name="PersonHome" url="Xxx.aspx" show="个人中心">
<page name="OnlineQuestionList.aspx" show="咨询记录" />
<page name="ChangePwd.aspx" show="修改密码" />
</model>
<model name="TrainingPlan" url="TrainingCourseList.aspx" show="培训规划">
<page name="TrainingCourseList.aspx" show="课表检索" />
</model>
</items>