在向大家详细介绍C#文件中使用XML之前,首先让大家了解下C# System.Xml集合,然后全面介绍C#文件中使用XML。
要在C#文件中使用XML,就必须引用一个特定的名称空间。 .Net平台中的一个名称空间是作为一个程序组件的组织系统使用的,它对于解决命名冲突很重要,这一点很象 XML中的 名称空间。这个基于 XML的菜单系统是用位于C# System.Xml集合中的System.Xml名称空间创建的。.Net SDK 是这样定义集合的:一个集合就是一个类型和资源的汇集信息,这些类和资源一起使用,形成一个功能的逻辑单元,即一个“逻辑”dll。
一个集合需要许多物理文件,如界面、类、资源文件等等,并且创建了关于文件如何一起工作的元数据。集合中还可能包含版本及安全信息。集合有许多好处,其中之一就是可以在ASP.NET应用程序中使用,而无须用regsvr32.exe向注册文件中增加一个类识别号(CLSID)。这样以来,集合的升级操作与将适当的集合复制到一个ASP.NET 应用程序的bin 目录中一样简单。现在我们就来仔细看一看那些建立在System.Xml名称空间和集合中的类。
如果你以前使用过Microsoft的 MSXML3分解器,就会发现使用C# System.Xml集合中的类相当简单。这里的菜单应用程序只使用了这些主要集合类中的一部分:XmlNode、 XmlDocument、 XmlNodeList、 XmlNamedNodeMap、 DocumentNavigator、 XmlTextReader和 XmlTextWriter。
XmlDocument、 XmlNodeList和XmlNode类用来创建传递给客户端浏览器的菜单应用程序的结构。用XmlDocument类以一种安全线程(thread-safe)的方式从服务器上装载和分解本地或远程XML 文档。建立在一个字符串中的 XML标记也可以被装载或分解,从而在一个文档中创建、移动节点或取消节点的移动。XmlNodeList 类可以使我们列举一个节点的集合来访问一个特定属性,如名称、值或名称空间。最后,XmlNode类可以用来在XML文档中向一个用于检验的XmlNode 对象分配一个特定节点。
XmlNamedNodeMap类用来列举建立在一个元素类型选择中的属性集合。 DocumentNavigator、 XmlTextReader和XmlTextWriter类提供与XML一起使用所需要的额外功能。要特别说明的是,DocumentNavigator 可以用来执行XPath查询,它被包含在XSLT转换中。XmlTextReader类提供对XML节点的只向前(forward-only)、无缓存的访问,从而使XML节点对大型XML文档也同样生效。XmlTextWriter类提供一个快速、只向前的指针模型,实现将 XML 内容写到一个流或一个文件中的目的。
在菜单应用程序中使用的XML 文档相对来说是较小的,因此我们可以在服务器端使用文档对象模式(DOM)来存取XML文档中的不同节点。当分解大型 XML文档时,就需要使用XmlTextReader 类所含有的只向前模型。
【编辑推荐】