一篇很实用的文章:用XMLTextReader类加速.NET中XML存取(转)

在.NET框架的System.XML名称空间中包含的XMLTextReader类不需要对系统资源要求很高,就能从XML文件中快速读取数据。使用XMLTextReader类能够从XML文件中读取数据,并且将其转换为HTML格式在浏览器中输出。
  读本文之前,读者需要了解一些基本知识:XML、HTML、C#编程语言,以及.NET尤其是ASP.NET框架的一些知识。
  微软公司的.NET框架为开发者提供了许多开发的便利,随着XML的重要性不断增长,开发者们都期待着有一整套功能强大的XML工具被开发出来。.NET框架没有辜负我们的这番期望,在System.XML 名称空间中组织进了以下几个用于XML的类:
  XMLTextReader------提供以快速、单向、无缓冲的方式存取XML数据。(单向意味着你只能从前往后读取XML文件,而不能逆向读取)
  XMLValidatingReader------与XMLTextReader类一起使用,提供验证DTD、XDR和XSD架构的能力。
  XMLDocument------遵循W3C文档对象模型规范的一级和二级标准,实现XML数据随机的、有缓存的存取。一级水平包含了DOM的最基本的部分,而二级水平增加多种改进,包括增加了对名称空间和级连状图表(css)的支持。
  XMLTextWriter------生成遵循 W3C XML 1.0 规范的XML文件。
  本文主要讲述的是第一个类XMLTextReader,这个类设计的目的就是从XML文件中快速的读取数据,而对系统资源(主要包括内存和处理器时间)不做很高的要求。在父级程序的控制下,它通过每次只处理一个节点的方式对XML文件进行逐步操作,实现这种工作过程。在XML文件的每个节点中,父级程序能决定该节点的类型,它的属性和数据(如果有的话),以及其他有关该节点的信息。基于这些信息,父级程序可以选择是处理这个节点还是忽略该节点的信息,以满足各种应用程序请求的需要。这被称为抽取式(pull)处理模型,因为父级程序发出请求并且从XML文件中抽取各个节点,然后根据需要处理它或者是不处理它。
  我们可以把XMLTextReader类和XML简单应用程序接口,即SAX相比,后者是在编程人员中非常流行的另一种读取XML数据的技术。XMLTextReader 和SAX有一点很相似,它们都不需要占用很多的系统资源,就能迅速的从XML文件读取数据。但是,与XMLTextReader的抽取式模型迥然不同,SAX使用的是推入式模型:XML处理器通过 “事件”告知主机应用程序哪些节点数据是可以获得,那些不能获得;根据需要,主机程序则作出相应的反应或置之不理。换句话说,数据的传送方向是从SAX处理程序中推入到主机。程序员们势必会在抽取式和推入式处理模型谁更有优势的问题上争论一番,但是大家都不可否认的是,两种模型都能很好的进行工作。.NET 框架不支持SAX,但是你能使用现存的SAX工具, 例如 MSXML分析器,用于你的.NET 程序。

时间: 2024-12-23 18:17:49

一篇很实用的文章:用XMLTextReader类加速.NET中XML存取(转)的相关文章

安装Apache和PHP的一些补充,一篇很实用的文章

Anywhere     liuxiLzl@163.net PHP的安装步骤,网上有很多资料,都非常详细.但是,由于Apache,PHP这类自由软件的安装并不象商业软件那样有一个友好的用户界面,许多网友又很少碰上这类东东,所以尽管旁边有一份安装资料,但还是碰上许多问题.我在国内许多关于Linux和php的论坛上,也注意到了不少网友总问相似的问题.因此,我把我所知道的这类问题的解决方法写出来,不对的地方,还请各位指出.    一.自由软件的安装,无论是在Win32还是在Linux,一般都有READ

用XMLTextReader类加速XML存取

xml 在.NET框架的System.XML名称空间中包含的XMLTextReader类不需要对系统资源要求很高,就能从XML文件中快速读取数据.使用XMLTextReader类能够从XML文件中读取数据,并且将其转换为HTML格式在浏览器中输出. 读本文之前,读者需要了解一些基本知识:XML.HTML.C#编程语言,以及.NET尤其是ASP.NET框架的一些知识. 微软公司的.NET框架为开发者提供了许多开发的便利,随着XML的重要性不断增长,开发者们都期待着有一整套功能强大的XML工具被开发

对一篇很长的文章做到完美的分页输出

分页 利用统计文章字数,然后达到一定字数就截断输出,但是分页的内容就会在莫名其妙的地方截断,不是很友好.很简单,在要截断的地方附近找下面的符号::'"?.!;'".!如果后面存在<p>或<br>就分页.主要是要研究文章的格式.<%if Request.ServerVariables("Content_Length") > 0 thencontent = Request.Form("textarea1") Pag

对一篇很长的文章做到完美的分页输出(转)

分页 利用统计文章字数,然后达到一定字数就截断输出,但是分页的内容就会在莫名其妙的地方截断,不是很友好.很简单,在要截断的地方附近找下面的符号::'"?.!;'".!如果后面存在<p>或<br>就分页.主要是要研究文章的格式.<%if Request.ServerVariables("Content_Length") > 0 thencontent = Request.Form("textarea1") Pag

很实用的文章评论效果js代码

这里是文章正文部分:中国站长天空,站长建站乐园!网址:http://www.111cn.net 我要评论 还能输入字

很实用的一个php验证码类

 代码如下 复制代码 <?php class ImageCode{  private $width;//验证码图片宽度  private $height;//验证码图片高度  private $codeNum;//验证码字符个数  private $checkCode;//验证码字符  private $image;//验证码画布  function __construct($width=60,$height=20,$codeNum=4){   $this->width=$width;   $

很实用的Android日期计算类

分享一个使用较方便的日期计算类: package com.utils.datecount; import java.text.SimpleDateFormat; import java.util.Date; import java.util.GregorianCalendar; public class DateCount { /** * datelevel 0为7天内,1为7到15天,2为15天以上 */ public static int datelevel = 0; public stat

一篇介绍JSP标签库很详细的文章,可以做为参考手册

js|参考|参考手册 标准的JSP 标记可以调用JavaBeans组件或者执行客户的请求,这大大降低了JSP开发的复杂度和维护量.JSP技术也允许你自定义taglib,其实换句话说,taglib可以看成是对JSP标记的一种扩展,正如xml是对html的一种扩展一样.taglib通常定义在tag标签库中,这种标签库存放着你自己定义的tag标签.简而言之,如果使用taglib,那么你可以设计自己的JSP标记! 一般来说,自定义tag标签主要用于操作隐藏对象.处理html提交表单.访问数据库或其它企业

一篇入门的 Class 文章

刚在大略浏览了一下首页更新的那篇有关Class的文章(指PHPE的那篇 http://www.phpe.net/articles/389.shtml ),很不错,建议看看.对类的摸索--俺用了半年时间才大概理解类的作用和实现.主要是没有一篇能让我理解的文章(之前没接触过任何OO的东西).以我的观点来说说PHP中的Class,用于表达的语言都是非正式的语言,也不能确定是否正确.建立一个类很简单. PHP代码:---------------------------------------------