知识大全 解析.Net框架下的XML编程技术[1]

Posted

篇首语:人的天职在勇于探索真理。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 解析.Net框架下的XML编程技术[1]相关的知识,希望对你有一定的参考价值。

解析.Net框架下的XML编程技术[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

    一 前言

  XML是微软 Net战略的一个重要组成部分 而且它可谓是XML Web服务的基石 所以掌握 Net框架下的XML技术自然显得非常重要了 本文将指导大家如何运用C#语言完成 Net框架下的XML文档的读写操作 首先 我会向大家介绍 Net框架中与XML相关的命名空间和其中的重要类 其次 我还会给出有关的实例以使读者更进一步的了解XML文档的读写操作的具体方法

  二 XML命名空间和相关类简介

  在深入进行 Net框架下的XML文档的操作之前 我想很有必要向大家介绍 Net框架中与XML技术有关的命名空间和其中一些重要的类 Net框架为我们提供了以下一些命名空间 System Xml System Xml Schema System Xml Serialization System Xml Xpath以及 System Xml Xsl来包容和XML操作相关的类

  ◆System Xml命名空间包含了一些最重要的XML类 其中最主要的类是和XML文档的读写操作相关的类 这些类中包括 个与读相关的类以及 个与写相关的类 它们分别是 XmlReader XmlTextReader XmlValidatingReader XmlNodeReader XmlWriter以及 XmlTextWriter 本文将重点介绍这些类 因为它们是最基本也是最重要的类   ◆XmlReader类是一个虚基类 它包含了读XML文档的方法和属性 该类中的Read方法是一个基本的读XML文档的方法 它以流形式读取XML文档中的节点(Node) 另外 该类还提供了ReadString ReadInnerXml ReadOuterXml和ReadStartElement等更高级的读方法 除了提供读XML文档的方法外 XmlReader类还为程序员提供了MoveToAttribute MoveToFirstAttribute MoveToContent MoveToFirstContent MoveToElement以及 MoveToNextAttribute等具有导航功能的方法 在本文后面介绍的实例中 我们将运用到这些方法   ◆XmlTextReader XmlNodeReader以及XmlValidatingReader等类是从XmlReader类继承过来的子类 根据它们的名称 我们可以知道其作用分别是读取文本内容 读取节点和读取XML模式(Schemas)   ◆XmlWriter类为程序员提供了许多写XML文档的方法 它是XmlTextWriter类的基类 我在后面的实例中会给出相关的运用方法   ◆XmlNode类是一个非常重要的类 它代表了XML文档中的某个节点 该节点可以是XML文档的根节点 这样它就代表整个XML文档了 它是许多很有用的类的基类 这些类包括插入节点的类 删除节点的类 替换节点的类以及在XML文档中完成导航功能的类 同时 XmlNode类还为程序员提供了获取双亲节点 子节点 最后一个子节点 节点名称以及节点类型等的属性 它的三个最主要的子类包括 XmlDocument XmlDataDocument以及XmlDocumentFragment XmlDocument类代表了一个XML文档 它提供了载入和保存XML文档的方法和属性 这些方法包括了Load LoadXml和Save等 同时 它还提供了添加特性(Attributes) 说明(Comments) 空间(Spaces) 元素(Elements)和新节点(New Nodes)等XML项的功能 XmlDocumentFragment类代表了一部分XML文档 它能被用来添加到其他的XML文档中 XmlDataDocument类可以让程序员更好地完成和ADO NET中的数据集对象之间的互操作

  除了上面介绍的System Xml命名空间中的类外 该命名空间还包括了XmlConvert XmlLinkedNode以及XmlNodeList等类 不过这些类不是本文介绍的重点 有兴趣的读者不妨去参考相关文档资料

  System Xml Schema命名空间中包含了和XML模式相关的类 这些类包括XmlSchema XmlSchemaAll XmlSchemaXPath以及XmlSchemaType等类

  System Xml Serialization命名空间中包含了和XML文档的序列化和反序列化操作相关的类 XML文档的序列化操作能将XML格式的数据转化为流格式的数据并能在网络中传输 而反序列化则完成相反的操作 即将流格式的数据还原成XML格式的数据

  System Xml XPath命名空间包含了XPathDocument XPathExression XPathNavigator以及XPathNodeIterator等类 这些类能完成XML文档的导航功能 在XPathDocument类的协助下 XPathNavigator类能完成快速的XML文档导航功能 该类为程序员提供了许多Move方法以完成导航功能 System Xml Xsl命名空间中的类完成了XSLT的转换功能

  三 读XML文档的方法

  在介绍完 Net框架中和XML有关的命名空间和相关类后 我接着向大家介绍和XML相关的一些操作 首先 我向大家介绍的读取XML文档的方法 在下面的实例程序中 我将运用VS net开发工具附带的 books xml 文件来作为示例 你可以在你的机器上搜索到该文件(或请参考附录) 或者你也可以运用其他的XML文件

  首先 我们用XmlTextReader类的对象来读取该XML文档 方法很简单 就是在创建新对象的构造函数中指明XML文件的位置即可

XmlTextReader textReader = new XmlTextReader( C:\\\\books xml );

  一旦新对象创建完毕 你就可以调用其Read方法来读取XML文档了 调用Read方法之后 信息被存储起来 你可以通过读取该对象的Name BaseURI Depth LineNumber等属性来获取这些信息 下面我给出一个完整的实例 该实例通过简单的读取 books xml 文件 然后将其中的信息显示在控制台中

using System; using System Xml;

namespace ReadXml class Class static void Main( string[] args ) // 创建一个XmlTextReader类的对象并调用Read方法来读取文件 XmlTextReader textReader = new XmlTextReader( C:\\\\books xml ); textReader Read(); // 节点非空则执行循环体 while ( textReader Read() ) // 读取第一个元素 textReader MoveToElement(); Console WriteLine( XmlTextReader Properties Test ); Console WriteLine( =================== );

// 读取该元素的属性并显示在控制台中 Console WriteLine( Name: + textReader Name); Console WriteLine( Base URI: + textReader BaseURI); Console WriteLine( Local Name: + textReader LocalName); Console WriteLine( Attribute Count: + textReader AttributeCount ToString()); Console WriteLine( Depth: + textReader Depth ToString()); Console WriteLine( Line Number: + textReader LineNumber ToString()); Console WriteLine( Node Type: + textReader NodeType ToString()); Console WriteLine( Attribute Count: + textReader Value ToString());

  XmlTextReader类中有一个很重要的属性-NodeType 通过该属性 我们可以知道其节点的节点类型 而枚举类型XmlNodeType中包含了诸如Attribute CDATA Element Comment Document DocumentType Entity ProcessInstruction以及WhiteSpace等的XML项的类型 通过与XmlNodeType中的元素的比较 我们可以获取相应节点的节点类型并对其完成相关的操作 下面我就给出一个实例 该实例读取每个节点的NodeType 并根据其节点类型显示其中的内容 同时程序还记录了XML文件中每种节点类型的数目 cha138/Article/program/net/201311/15479

相关参考

知识大全 解析.Net框架下的XML编程技术[2]

解析.Net框架下的XML编程技术[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!usingS

知识大全 把图象文件转换成XML格式文件

把图象文件转换成XML格式文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!利用NET框架下的Fr

知识大全 浅析.NET框架下的自动内存管理

浅析.NET框架下的自动内存管理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一抽象类  抽象

知识大全 .NET下的多线程编程应用程序域

.NET下的多线程编程应用程序域  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一应用程序域&n

知识大全 探讨ASP.NETMVC框架内置AJAX支持编程技术[1]

探讨ASP.NETMVC框架内置AJAX支持编程技术[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 用PHP与XML联手进行网站编程[2]

用PHP与XML联手进行网站编程[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  五案例解析

知识大全 Web XML编程之显示XML文件内容

WebXML编程之显示XML文件内容  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  XML技术越

知识大全 探讨ASP.NETMVC框架内置AJAX支持编程技术

探讨ASP.NETMVC框架内置AJAX支持编程技术  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 探讨ASP.NETMVC框架内置AJAX支持编程技术[2]

探讨ASP.NETMVC框架内置AJAX支持编程技术[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 探讨ASP.NETMVC框架内置AJAX支持编程技术[3]

探讨ASP.NETMVC框架内置AJAX支持编程技术[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一