设为首页收藏本站language 语言切换
查看: 1355|回复: 0
收起左侧

.Net中的 XmlReader 与 XmlWriter 解析

[复制链接]
发表于 2010-2-25 10:50:25 | 显示全部楼层 |阅读模式
<p >XML在.NET Framework 中有着重要的作用。如:.NET Framwork 本身的配置文件和源代码文档中使用XML,SOAP、WEB服务和ADO.NET也使用XML。<p ><p >为了扩展XML,.NET Framwork包含了System.Xml命名空间。这个命名空间带有许多处理XML的类。如,XmlDocument(这是DOM实现方式)类,以及.NET为SAX提供的一种代替品(XmlReader和XmlWriter类)。<p ><p >XPath和XSLT类,System.Xml.Serialization命名空间中的类从XML文档中创建一个对象(反串行化)。<p ><p >下表是XML读取和写的类<p ><p >操作XML有两个方法<p ><p >一、使用MSXML<p ><p >MSXML 是XML的分析器,MSXML是一个基于COM的组件,所以需要创建交互操作的程序集。最简单的方法就是在VS 中添加这个COM组件(Microsoft XML,v4.0(或v3.0,v2.6))的引用。这时在引用那一栏中就会出现MSXML2(在导入COM组件是时,为了新程序集提供的命名空间是该COM组件的类型库名)。<p ><p >二、使用System.Xml类<p ><p >与msxml类相比,System.Xml类有几个优点。首先,System.Xml是托管代码,使用它可以确保所有的代码都获得安全保护和类型安全性。使用COM交互操作会增加一些开销,但最重要的是,System.Xml命名空间很容易使用,灵活性非常大。<p ><p >读写流格式的XML<p ><p >XmlReader提供内存要求不是很高,提供了一种非常迅速、只几前的只读光标来处理XML数据。<p ><p >XmlWriter可以生成XML文档。<p ><p >XmlReader和XmlWriter都是抽象类。<p ><p >派生于XmlReader的类有XmlNodeReader(把XmlNode作为其源,而不是一个流)、XmlValidatingReader(XmlValidatingReader添加了DTD和模式验证,提供数据的有效性验证)、XmlTextReader(与IO命名空间中的TextReader对象一起使用)<p ><p >XmlTextWriter(与IO命名空间中TextWriter对象一起使用)<p ><p >1.XmlReader类<p ><p >XmlReader非常类似于SAX。它们最大的区别是SAX是一种推模型(所有XML数据都必须由应用程序 处理,无论是否需要这些数据),XmlReader是一种拉模型(如果不需要所有的数据,就不需要处理它们)。<p ><p >如下代码:<p ><ccid_nobr><table width="400" border="1" cellspacing="0" cellpadding="2"  bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code" ><pre><ccid_code>richTextBox1.Clear();XmlReader rdr = XmlReader.Create(&quot;book.xml&quot;);while (rdr.Read()){  if (rdr.NodeType == XmlNodeType.Text)    richTextBox1.AppendText(rdr.Value+&quot;\r\n&quot;);  }</ccid_code></pre></td></tr></table></ccid_nobr><br><p ><p >(1)使用静态方法Create(),返回一个XmlReader对象。<p ><p >(2)Read()方法可以进入下一个节点。<p ><p >XmlReader类还可以读取强类型化的数据,它有几个ReadValuesAs方法,如、ReadValueAsDouble、ReadValueAsBoolean等。                                 <p align="center"><font color="FF0000" >1</font>2<span class="content01">下一页&gt;&gt;</span></p></p>
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-5-11 10:31 , Processed in 0.056206 second(s), 24 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表