用 C#与 XML 创建动态分层菜单
从在复杂的 B2B 交易中的交换数据到为应用程序提供配置文件结构,XML 在许多
方面大显身手!由于 XML 不断地获得软件的支持,我们完全能够预见:XML 的
应用将不断增加。本文就介绍这样一种应用程序,它使用 XML 创建类似于
Windows 开始菜单的分层菜单系统,从而向终端用户提供更满意的 Web 体验。
这个应用程序将使用 C#、XML 和服务器端 Microsoft .Net 框架,创建一个
DHTML 结构,IE4 或更高版本的浏览器可以操作它并在客户端动态显示。由于我
们可以快速地访问服务器上的 XML,并且 XML 能够描述层次之间的关系,因此
它成为标记“父/子菜单”数据的一个最佳选择。
(一个三层菜单系统,可点击放大)
除了学习如何使用 XML 创建一个菜单应用程序外,我们还要介绍 .Net 框架的
主要 XML 类,它们位于 System.Xml 集合中。
什么是.Net 集合(Assembly)
要在 C# 文件中使用 XML,就必须引用一个特定的名称空间。 .Net 平台中的
一个名称空间是作为一个程序组件的组织系统使用的,它对于解决命名冲突很重要,
这一点很象 XML 中的 名称空间。这个基于 XML 的菜单系统是用位于 System.Xml
集合中的 System.Xml 名称空间创建的。.Net SDK 是这样定义集合的:一个集合就
是一个类型和资源的汇集信息,这些类和资源一起使用,形成一个功能的逻辑单元,
即一个“逻辑”dll。
一个集合需要许多物理文件,如界面、类、资源文件等等,并且创建了关于文
件如何一起工作的元数据。集合中还可能包含版本及安全信息。集合有许多好处,
其中之一就是可以在 ASP.NET 应用程序中使用,而无须用 regsvr32.exe 向注册文件
中增加一个类识别号(CLSID)。这样以来,集合的升级操作与将适当的集合复制
到一个 ASP.NET 应用程序的 bin 目录中一样简单。现在我们就来仔细看一看那些
建立在 System.Xml 名称空间和集合中的类。
如果你以前使用过 Microsoft 的 MSXML3 分解器,就会发现使用 System.Xml
集合中的类相当简单。这里的菜单应用程序只使用了这些主要集合类中的一部分:
XmlNode、 XmlDocument、 XmlNodeList、 XmlNamedNodeMap、
DocumentNavigator、 XmlTextReader 和 XmlTextWriter。
XmlDocument、 XmlNodeList 和 XmlNode 类用来创建传递给客户端浏览器的
菜单应用程序的结构。用 XmlDocument 类以一种安全线程(thread-safe)的方式从
服务器上装载和分解本地或远程 XML 文档。建立在一个字符串中的 XML 标记也
评论0