C#调用WalkTree()方法

开发 后端
这里介绍C#调用WalkTree()方法,XmlMenus集合的代码开始时要声明一个XmlHierMenu 名称空间,接下来要引用 System、 System.Xml、 System.Collections和System.IO 名称空间

本文向大家介绍C#调用WalkTree()方法,可能好多人还不知道C#调用WalkTree()方法,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。

菜单应用程序使用了3个 XML 文档:menuItems.xml、menuItems2.xml 和menuItems3.xml,它们用于标记单独的菜单项目。XML的处理和操作由一个叫做xmlMenus.dll的集合完成,这个集合被服务器端的一个ASP.NET 文件createMenus.aspx所使用。在客户端的动态HTML (DHTML)内容使用了一个层叠格式表文件和一个JavaScript文件,这些文件联合在一起生成了本文开始部分的图示结果。

我们在List 1的代码显示了用来标记单独菜单项目的XML文档的一部分。文档中的主元素命名为menuItem,它可以包含一个名字和超级链接元素以及额外的menuItem 子元素。这种关系可以用来创建包含子菜单的菜单系统,就象Windows的开始菜单一样。
由于 XML已经标出了分层关系,因此就可以利用循环在不同元素之间行走:当使用XmlDocument、XmlNode和XmlNodeList类创建子节点时,我们可以反复调用WalkTree() 函数以颠倒父/子关系。其它的类如 ArrayList和 StreamWriter用于将相关菜单归类到数组中,然后在适当时间将所生成的菜单结构写入一个文件中。

XmlMenus集合的代码开始时要声明一个XmlHierMenu 名称空间,接下来要引用 System、 System.Xml、 System.Collections和System.IO 名称空间:

  1. using System;  
  2. using System.Xml;  
  3. using System.Collections;  
  4. using System.IO;  

在这部分代码之后要创建3个构造器。一个构造器不接收变量,只对变量进行初始化。下一个构造器接收一个图象文件的定制路径。最后一个构造器在不经常对XML菜单进行刷新的情况下,允许将由集合生成的输出存储到一个文件中。最后一个构造器所生成的文件可以被静态地包含在一个 ASP.NET文件中,而不是在各个Web页面请求时随时地生成。

这个方法负责进行XML文档的装载和解析,找到根节点,然后在根的子节点之间循环。如果发现一个子节点本身还有子节点,就C#调用WalkTree()方法,并且把这些子节点都传递到其中。如果这些子节点还有子节点,就再次C#调用WalkTree()方法。这个过程循环进行直到不再发现增加的子节点。Walktree()方法的代码可以参看List 3。
在C#调用WalkTree()方法并且对不同的节点进行分析的同时,要解析 menuItem节点,将来自其超级链接和名字节点的数据放在数组列表中。对整个 XML文档都进行解析之后,数组列表的内容就被传递回调用的ASP.NET的页面,然后使用Response对象写出信息。从这时起,客户端的 JavaScript代码就开始控制DHTML 菜单了。

在服务器端,我们使用一个 ASP.NET页面来开始菜单的创建过程。这个页面输入了与集合相关联的名称空间XmlHierMenu:

  1. <%@ page language="C#" %> 
  2. <%@ Import Namespace="XmlHierMenu" %>  

然后,将样式表文件和 JavaScript文件包含在文件的 代码区中。最后,在 ASP.NET 页面底部的代码用来引用上面提到的CreateMenu() 方法与WalkTree()方法。

在ASP.NET 页面中所找到的C# 代码只是建立了到不同的XML文档的路径,并且对 XmlMenu 类进行了例示。一旦对这个类进行了例示,就对 CreateMenu()方法进行调用。这个方法接收菜单名以及到这个菜单的XML文档的文件路径。在本例中,要创建3个名为menu1、 menu2和 menu3 的菜单,然后在一个ASP.NET页面中使用。这个应用程序在一个给定页面中可以支持无穷多的菜单,但是我们建议菜单数目不要过多,因为每增加一个菜单,发送到客户端的文件规模都会增加。

【编辑推荐】

  1. C#窗体里调用浅谈
  2. C#调用ListEmployee命令
  3. C# CreateEmployeeDefinition()函数
  4. C#实现断点续传详细剖析
  5. C# Employee对象浅谈
责任编辑:佚名 来源: 博客园
相关推荐

2009-08-31 16:33:28

C#调用Dispose

2009-09-01 11:04:59

C#调用扩展方法

2009-08-03 12:57:27

C#调用DLL

2009-09-11 10:59:06

Effective C调用Dispose()

2009-08-05 09:40:02

C#调用DLL函数

2009-09-02 10:49:46

C#调用析构方法

2009-08-26 16:58:12

调用C# Thread

2009-08-05 09:30:39

C#调用DLL函数

2024-05-16 12:33:37

C#编程指针

2009-08-11 11:07:49

Java调用C# we

2011-04-08 09:52:44

C++C#DLL

2009-08-17 16:18:47

C#调用CreateO

2009-09-18 19:09:41

C# COM组件

2009-08-05 16:29:18

C#调用C++动态链接

2009-08-04 09:30:33

C#调用ImageAn

2009-08-31 10:39:15

C#调用ListEmp

2009-08-05 17:06:39

ASP调用C# DLL

2009-04-03 13:20:05

C#扩展方法调用

2009-08-18 15:49:19

C# 操作Excel

2009-08-05 14:54:09

VB调用C#类库
点赞
收藏

51CTO技术栈公众号