平时我们编写的XML文档节点是没有属性,但很多时候为了保存更多内容,XML文件节点中添加了很多属性,这时该如何读取呢?
以下是在ASP.NET下使用C#代码读取例如站点地图格式的XML文件
首先新建页面,在后台中导入命名空间:using System.Xml;
编写如下方法,在加载时引用,C#代码如下
protected void PrintXML()
{
try
{
XmlDocument xm = new XmlDocument();
xm.Load("WebUI/MenuXML.xml"); //在根目录下要必须加上根目录名,直接写文件名不可用
XmlNode rootnode = xm.DocumentElement;//得到根节点
foreach (XmlNode item in rootnode.ChildNodes)//遍历根节点
{
for (int i = 0; i < item.Attributes.Count; i++)//遍历一级节点属性
{
Response.Write(item.Attributes[i].Name + "--" + item.Attributes[i].Value + "<br/>");//输出当前节点的属性名称和值
XmlNodeList list = item.ChildNodes;//当前节点下的所有节点集合
foreach (XmlNode child in list)
{
for (int j = 0; j < child.Attributes.Count; j++)
{
Response.Write(" " + child.Attributes[j].Value);
}
Response.Write("<br/>");
}
}
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
下面是XML文档的内容。
<?xml version="1.0" encoding="UTF-8"?>
<Menu>
<MenuTwo name="人事管理">
<MenuThree name="机构信息" URL="PersonManage/BranchManage.aspx" />
<MenuThree name="部门信息" URL="PersonManage/DepartManage.aspx" />
<MenuThree name="员工管理" URL="PersonManage/UserManage.aspx" />
</MenuTwo>
<MenuTwo name="日程管理">
<MenuThree name="我的日程" URL="ScheduleManage/PersonSchedule/PersonSchedule.aspx" />
<MenuThree name="部门日程" URL="ScheduleManage/DepartSchedule/DepartSchedule.aspx" />
<MenuThree name="我的便签" URL="ScheduleManage/PersonNote/PersonNote.aspx" />
</MenuTwo>
<MenuTwo name="文档管理">
<MenuThree name="文档管理" URL="File/FileManage/FileManage.aspx" />
<MenuThree name="回收站" URL="File/RecycleBin.aspx" />
<MenuThree name="文件搜索" URL="File/FileManage/FileSearch.aspx" />
</MenuTwo>
<MenuTwo name="消息传递">
<MenuThree name="消息管理" URL="Message/MessageManage/MessageManage.aspx" />
<MenuThree name="信箱" URL="Message/MailBox/MailBox.aspx" />
</MenuTwo>
<MenuTwo name="系统管理">
<MenuThree name="角色管理" URL="SysManage/RoleManage/RoleManage.aspx" />
<MenuThree name="登录日志" URL="SysManage/LoginLog.aspx" />
<MenuThree name="操作日志" URL="SysManage/OperateLog.aspx" />
<MenuThree name="菜单排序" URL="SysManage/MenuAdjust.aspx" />
</MenuTwo>
<MenuTwo name="考勤管理">
<MenuThree name="员工签到、签退" URL="ManualSign/ManualSign.aspx" />
<MenuThree name="考勤历史查询" URL="ManualSign/ManualSignSearch.aspx" />
<MenuThree name="考勤统计" URL="ManualSign/SignStatistic.aspx" />
</MenuTwo>
</Menu>