我爱Aspx >> Asp.Net >> 用C#与XML创建动态分层菜单我们在List 1的代码显示了用来标记单独菜单项目的XML文档的一部分。文档中的主元素命名为menuItem,它可以包含一个名字和超级链接元素以及额外的menuItem 子元素。这种关系可以用来创建包含子菜单的菜单系统,就象Windows的开始菜单一样。
由于 XML已经标出了分层关系,因此就可以利用循环在不同元素之间行走:当使用XmlDocument、XmlNode和XmlNodeList类创建子节点时,我们可以反复调用WalkTree() 函数以颠倒父/子关系。其它的类如 ArrayList和 StreamWriter用于将相关菜单归类到数组中,然后在适当时间将所生成的菜单结构写入一个文件中。
XmlMenus集合的代码开始时要声明一个XmlHierMenu 名称空间,接下来要引用 System、 System.Xml、 System.Collections和System.IO 名称空间:
using System;
using System.Xml;
using System.Collections;
using System.IO;
在这部分代码之后要创建3个构造器。一个构造器不接收变量,只对变量进行初始化。下一个构造器接收一个图象文件的定制路径。最后一个构造器在不经常对XML菜单进行刷新的情况下,允许将由集合生成的输出存储到一个文件中。最后一个构造器所生成的文件可以被静态地包含在一个 ASP.NET文件中,而不是在各个Web页面请求时随时地生成。
在构造器之后,开始定义 CreateMenu()方法,具体请看List 2中的代码。
这个方法负责进行XML文档的装载和解析,找到根节点,然后在根的子节点之间循环。如果发现一个子节点本身还有子节点,就调用WalkTree() 方法,并且把这些子节点都传递到其中。如果这些子节点还有子节点,就再次调用 WalkTree()。这个过程循环进行直到不再发现增加的子节点。Walktree()方法的代码可以参看List 3。
Ҷƪл˵?
XML 如何推动下一代信息共享应用..[05-20]
基于XML的三层C/S模型[05-20]
XMLDOM手册[05-20]
利用XSL和ASP实现XML文档在线编辑[05-20]
让Asp与XML交互[05-20]
在IE里应用XML的一个小例子:解决..[05-20]
修改XML[05-20]
修改XML[05-20]
ASP.NET中使用Treeview和XML[05-20]
用asp.net和xml做的新闻更新系统..[05-20]
透明FLASH[05-20]
JS类:实现对联式广告[05-20]
网页间非常规方法传递值的方法[05-20]
利用WebClient和WebRequest类获得..[05-20]
通过ASP.NET远程杀死进程[05-20]
Asp.net中DataGrid控件的自定义分..[05-20]
使用ASP.NET中调用WebService时不..[05-20]
在系统菜单中添加自定义菜单项[05-20]
利用SOAP(Webservice)上传文件[05-20]
利用ASP.NET实现域名查询[05-20]