欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【详解.NET中的XmlReader与XmlWriter】,下面是详细的分享!
详解.NET中的XmlReader与XmlWriter
XML在.NET Framework 中有着重要的作用。如:.NET Framwork 本身的配置文件和源代码文档中使用XML,SOAP、WEB服务和ADO.NET也使用XML。
为了扩展XML,.NET Framwork包含了System.Xml命名空间。这个命名空间带有许多处理XML的类。如,XmlDocument(这是DOM实现方式)类,以及.NET为SAX提供的一种代替品(XmlReader和XmlWriter类)。
XPath和XSLT类,System.Xml.Serialization命名空间中的类从XML文档中创建一个对象(反串行化)。
下表是XML读取和写的类
操作XML有两个方法
一、使用MSXML
MSXML 是XML的分析器,MSXML是一个基于COM的组件,所以需要创建交互操作的程序集。最简单的方法就是在VS 中添加这个COM组件(Microsoft XML,v4.0(或v3.0,v2.6))的引用。这时在引用那一栏中就会出现MSXML2(在导入COM组件是时,为了新程序集提供的命名空间是该COM组件的类型库名)。
二、使用System.Xml类
与msxml类相比,System.Xml类有几个优点。首先,System.Xml是托管代码,使用它可以确保所有的代码都获得安全保护和类型安全性。使用COM交互操作会增加一些开销,但最重要的是,System.Xml命名空间很容易使用,灵活性非常大。
读写流格式的XML
XmlReader提供内存要求不是很高,提供了一种非常迅速、只几前的只读光标来处理XML数据。
XmlWriter可以生成XML文档。
XmlReader和XmlWriter都是抽象类。
派生于XmlReader的类有XmlNodeReader(把XmlNode作为其源,而不是一个流)、XmlValidatingReader(XmlValidatingReader添加了DTD和模式验证,提供数据的有效性验证)、XmlTextReader(与IO命名空间中的TextReader对象一起使用)
XmlTextWriter(与IO命名空间中TextWriter对象一起使用)
1.XmlReader类
XmlReader非常类似于SAX。它们最大的区别是SAX是一种推模型(所有XML数据都必须由应用程序 处理,无论是否需要这些数据),XmlReader是一种拉模型(如果不需要所有的数据,就不需要处理它们)。
如下代码:
richTextBox1.Clear(); |
(1)使用静态方法Create(),返回一个XmlReader对象。
(2)Read()方法可以进入下一个节点。
XmlReader类还可以读取强类型化的数据,它有几个ReadValuesAs方法,如、ReadValueAsDouble、ReadValueAsBoolean等。
检索属性数据
AttributeCountry属性确定属性个数。GetAttribute()方法按照名称或索引来获取属性,如果要一次迭代一个属性就可以使用MoveToFirstAttribute()和MoveToNextAttribute()方法。
如下代码:
richTextBox1.Clear(); |
使用XmlReader类进行验证
有时不但要知道文档的格式是规范的,还是确定文档是有效的。
XmlReader可以使用XmlReaderSettings,根据XSD模式验证XML。XSD模式添加到XMLSchemaSet中,通过Schema属性可以访问XMLSchemaSet。XsdValidate属性还必须设置为ture,这个属性默认为flase.
XmlWriter类可以把Xml写入一个流、文件、StringBuilder、TextWriter或另一个XmlWriter对象中。与XmlReader一样,XmlWriter类以只向前、未缓存的方式 进行写入。
使用XmlWirterSettings对旬进行是否缩进文本、缩进量等配置。
如下代码:
XmlWriterSettings settings=new XmlWriterSettings(); |
1.使用XmlWriterSettings实例对象进行生成的XML的设置。
2.使用Create(),返回一个XmlWriter对象,其中Create(),第一个参数为Xml的名字,第二个参数为XmlWriterSettings实例对象。
3.使用WriterStartDocument()中文档声明,开始写入数据,以WriteEndDocument()结束。注间控制元素的嵌套,注注意WriterStartElement()和WriterEndElement()的调用与位置。
4.还有一些专用的写入方法。WriteCData()可以输出一个CData部分(),WriterComment()以正确的XML格式写入注释。WriteChae()写入字符缓冲区的内容。
以上所分享的是关于详解.NET中的XmlReader与XmlWriter,下面是编辑为你推荐的有价值的用户互动:
相关问题:xml的优点
答:轻量级的数据储存文件 1)XML文档的内容和结构完全分离 这个特性为XML的应用带来了很大的好处。基于这样的特点,企业系统可以轻松地实现内容管理和流程管理的彻底分离,例如系统架构师可以只关注流程运转中各环节的接口定义,而各部门则可以专注... >>详细
相关问题:.NET 处理xml有几种方式?
答:目前最常用的是三种(有类库支持) XMLDocument类,该类是按照XML的结构进行解析对象的。 XMLReader类,该类主要是按照文件特性对XML进行处理的。 Linq to XML,这不一个类,是一个技术,严格说来是.net中的一个轻量级架构。如linq to sql等等。... >>详细
相关问题:c#.net如何解析XML,能给些简单的例子吗?
答:需要添加的命名空间: using System.Xml;定义几个公共对象: XmlDocument xmldoc ; XmlNode xmlnode ; XmlElement xmlelem ;1,创建到服务器同名目录下的xml文件: 方法一: xmldoc = new XmlDocument ( ) ; //加入XML的声明段落 xmlnode = xmld... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
