`
wangdeshui
  • 浏览: 246687 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ASP.NET 2.0 XML 系列(4):用XmlReader类介绍

阅读更多

 

xmlreader

(本文摘自MSDN)

XmlReader 类是一个提供对 XML 数据的非缓存、只进只读访问的抽象基类。该类符合 W3C 可扩展标记语言 (XML) 1.0 和 XML 中的命名空间的建议。

XmlReader 类支持从流或文件读取 XML 数据。该类定义的方法和属性使您可以浏览数据并读取节点的内容。当前节点指读取器所处的节点。使用任何返回当前节点值的读取方法和属性推进读取器。

XmlReader 类使您可以:

  • 检查字符是不是合法的 XML 字符,元素和属性的名称是不是有效的 XML 名称。

  • 检查 XML 文档的格式是否正确。

  • 根据 DTD 或架构验证数据。

  • 从 XML 流检索数据或使用提取模型跳过不需要的记录。

使用XmlReader读取XML文档之前,我们有必要了解一下这个类的属性和方法,以及节点XmlNode的类型。

1. XmlReader类的属性

名称 说明
AttributeCount 当在派生类中被重写时,获取当前节点上的属性数。
BaseURI 当在派生类中被重写时,获取当前节点的基 URI。
CanReadBinaryContent 获取一个值,该值指示 XmlReader 是否实现二进制内容读取方法。
CanReadValueChunk 获取一个值,该值指示 XmlReader 是否实现 ReadValueChunk 方法。
CanResolveEntity 获取一个值,该值指示此读取器是否可以分析和解析实体。
Depth 当在派生类中被重写时,获取 XML 文档中当前节点的深度。
EOF 当在派生类中被重写时,获取一个值,该值指示此读取器是否定位在流的结尾。
HasAttributes 获取一个值,该值指示当前节点是否有任何属性。
HasValue 当在派生类中被重写时,获取一个值,该值指示当前节点是否可以具有 Value。
IsDefault 当在派生类中被重写时,获取一个值,该值指示当前节点是否是从 DTD 或架构中定义的默认值生成的属性。
IsEmptyElement 当在派生类中被重写时,获取一个值,该值指示当前节点是否为空元素(例如 <MyElement/>)。
Item 已重载。 当在派生类中被重写时,获取此属性的值。
LocalName 当在派生类中被重写时,获取当前节点的本地名称。
Name 当在派生类中被重写时,获取当前节点的限定名。
NamespaceURI 当在派生类中被重写时,获取读取器定位在其上的节点的命名空间 URI(采用 W3C 命名空间规范中定义的形式)。
NameTable 当在派生类中被重写时,获取与该实现关联的 XmlNameTable。
NodeType 当在派生类中被重写时,获取当前节点的类型。
Prefix 当在派生类中被重写时,获取与当前节点关联的命名空间前缀。
QuoteChar 当在派生类中被重写时,获取用于括住属性节点值的引号字符。
ReadState 当在派生类中被重写时,获取读取器的状态。
SchemaInfo 获取作为架构验证结果分配给当前节点的架构信息。
Settings 获取用于创建此 XmlReader 实例的 XmlReaderSettings 对象。
Value 当在派生类中被重写时,获取当前节点的文本值。
ValueType 获取当前节点的公共语言运行库 (CLR) 类型。
XmlLang 当在派生类中被重写时,获取当前的 xml:lang 范围。
XmlSpace 当在派生类中被重写时,获取当前的 xml:space 范围。

 

2. XmlReader类的方法

 

名称 说明
Close 当在派生类中被重写时,将 ReadState 更改为 Closed
Create 已重载。 创建一个新的 XmlReader 实例。
Equals  已重载。 确定两个 Object 实例是否相等。 (从 Object 继承。)
GetAttribute 已重载。 当在派生类中被重写时,获取属性的值。
GetHashCode  用作特定类型的哈希函数。GetHashCode 适合在哈希算法和数据结构(如哈希表)中使用。 (从 Object 继承。)
GetType  获取当前实例的 Type。 (从 Object 继承。)
IsName 获取一个值,该值指示字符串参数是否是有效的 XML 名称。
IsNameToken 获取一个值,该值指示该字符串参数是否是有效的 XML 名称标记。
IsStartElement 已重载。 测试当前内容节点是否是开始标记。
LookupNamespace 当在派生类中被重写时,在当前元素的范围内解析命名空间前缀。
MoveToAttribute 已重载。 当在派生类中被重写时,移动到指定的属性。
MoveToContent 检查当前节点是否是内容(非空白文本、CDATAElementEndElementEntityReferenceEndEntity)节点。如果此节点不是内容节点,则读取器向前跳至下一个内容节点或文件结尾。它跳过以下类型的节点:ProcessingInstructionDocumentTypeCommentWhitespaceSignificantWhitespace
MoveToElement 当在派生类中被重写时,移动到包含当前属性节点的元素。
MoveToFirstAttribute 当在派生类中被重写时,移动到第一个属性。
MoveToNextAttribute 当在派生类中被重写时,移动到下一个属性。
Read 当在派生类中被重写时,从流中读取下一个节点。
ReadAttributeValue 当在派生类中被重写时,将属性值解析为一个或多个 TextEntityReferenceEndEntity 节点。
ReadContentAs 将内容作为指定类型的对象读取。
ReadContentAsBase64 读取内容并返回 Base64 解码的二进制字节。
ReadContentAsBinHex 读取内容并返回 BinHex 解码的二进制字节。
ReadContentAsBoolean 将当前位置的文本内容作为 Boolean 读取。
ReadContentAsDateTime 将当前位置的文本内容作为 DateTime 对象读取。
ReadContentAsDecimal 将当前位置的文本内容作为 Decimal 对象读取。
ReadContentAsDouble 将当前位置的文本内容作为双精度浮点数读取。
ReadContentAsFloat 将当前位置的文本内容作为单精度浮点数读取。
ReadContentAsInt 将当前位置的文本内容作为 32 位有符号整数读取。
ReadContentAsLong 将当前位置的文本内容作为 64 位有符号整数读取。
ReadContentAsObject 将当前位置的文本内容作为 Object 读取。
ReadContentAsString 将当前位置的文本内容作为 String 对象读取。
ReadElementContentAs 已重载。 读取当前元素,并将内容作为指定类型的对象返回。
ReadElementContentAsBase64 读取元素并对 Base64 内容进行解码。
ReadElementContentAsBinHex 读取元素并对 BinHex 内容进行解码。
ReadElementContentAsBoolean 已重载。 将当前元素值作为 Boolean 对象读取。
ReadElementContentAsDateTime 已重载。 读取当前元素并将内容作为 DateTime 对象返回。
ReadElementContentAsDecimal 已重载。 将当前元素值作为 Decimal 对象读取。
ReadElementContentAsDouble 已重载。 读取当前元素并将内容作为双精度浮点数返回。
ReadElementContentAsFloat 已重载。 将当前元素值作为单精度浮点数读取。
ReadElementContentAsInt 已重载。 读取当前元素并将内容作为 32 位有符号整数返回。
ReadElementContentAsLong 已重载。 读取当前元素并将内容作为 64 位有符号整数返回。
ReadElementContentAsObject 已重载。 读取当前元素并将内容作为 Object 返回。
ReadElementContentAsString 已重载。 读取当前元素并将内容作为 String 对象返回。
ReadElementString 已重载。 这是一个用于读取简单纯文本元素的 Helper 方法。
ReadEndElement 检查当前内容节点是否为结束标记并将读取器推进到下一个节点。
ReadInnerXml 当在派生类中被重写时,将所有内容(包括标记)当做字符串读取。
ReadOuterXml 当在派生类中被重写时,读取表示该节点和所有它的子级的内容(包括标记)。
ReadStartElement 已重载。 检查当前节点是否为元素并将读取器推进到下一个节点。
ReadString 当在派生类中被重写时,将元素或文本节点的内容当做字符串读取。
ReadSubtree 返回新的 XmlReader 实例,此实例可用于读取当前节点及其所有子节点。
ReadToDescendant 已重载。 让 XmlReader 前进到下一个匹配的子代元素。
ReadToFollowing 已重载。 一直读取,直到找到命名元素。
ReadToNextSibling 已重载。 让 XmlReader 前进到下一个匹配的同级元素。
ReadValueChunk 读取嵌入在 XML 文档中的大量文本流。
ReferenceEquals  确定指定的 Object 实例是否是相同的实例。 (从 Object 继承。)
ResolveEntity 当在派生类中被重写时,解析 EntityReference 节点的实体引用。
Skip 跳过当前节点的子级。
ToString  返回表示当前 ObjectString。 (从 Object 继承。)

 

3. XmlNodeType枚举成员

 

成员名称 说明
Attribute 属性(例如,id='123')。 Attribute 节点可以具有以下子节点类型:TextEntityReferenceAttribute 节点不以任何其他节点类型子节点的形式出现。不将其视为 Element 的子节点。
CDATA CDATA 节(例如,<![CDATA[my escaped text]]>)。CDATA 节用于转义否则将被识别为标记的文本块。CDATA 节点不能有任何子节点。它可以以 DocumentFragmentEntityReferenceElement 节点子级的形式出现。
Comment 注释(例如,<!-- my comment -->)。 Comment 节点不能有任何子节点。它可以以 DocumentDocumentFragmentElementEntityReference 节点子级的形式出现。
Document 作为文档树的根的文档对象提供对整个 XML 文档的访问。 Document 节点可以具有以下子节点类型:XmlDeclarationElement(最多一个)、ProcessingInstructionCommentDocumentType。它不能以任何节点类型子级的形式出现。
DocumentFragment 文档片段。 DocumentFragment 节点将节点或子树与文档关联起来,而实际上并不包含在该文档中。DocumentFragment 节点可以具有以下子节点类型:ElementProcessingInstructionCommentTextCDATAEntityReference。它不能以任何节点类型子级的形式出现。
DocumentType 由以下标记指示的文档类型声明(例如,<!DOCTYPE...>)。 DocumentType 节点可以具有以下子节点类型:NotationEntity。它可以以 Document 节点子级的形式出现。
Element 元素(例如,<item>)。 Element 节点可以具有以下子节点类型:ElementTextCommentProcessingInstructionCDATAEntityReference。它可以是 DocumentDocumentFragmentEntityReferenceElement 节点的子级。
EndElement 末尾元素标记(例如,</item>)。 当 XmlReader 到达元素的末尾时,返回 EndElement 节点。
EndEntity 由于调用 ResolveEntity 而使 XmlReader 到达实体替换的末尾时返回。
Entity 实体声明(例如,<!ENTITY...>)。 Entity 节点可以具有表示已展开实体的子节点(例如 TextEntityReference 节点)。它可以以 DocumentType 节点子级的形式出现。
EntityReference 实体引用(例如,&num;)。 EntityReference 节点可以具有以下子节点类型:ElementProcessingInstructionCommentTextCDATAEntityReference。它可以以 AttributeDocumentFragmentElementEntityReference 节点子级的形式出现。
None 如果未调用 Read 方法,则由 XmlReader 返回。
Notation 文档类型声明中的表示法(例如,<!NOTATION...>)。Notation 节点不能具有任何子节点。它可以以 DocumentType 节点子级的形式出现。
ProcessingInstruction 处理指令(例如,<?pi test?>)。 ProcessingInstruction 节点不能具有任何子节点。它可以以 DocumentDocumentFragmentElementEntityReference 节点子级的形式出现。
SignificantWhitespace 混合内容模型中标记间的空白或 xml:space="preserve" 范围内的空白。
Text 节点的文本内容。 Text 节点不能具有任何子节点。它可以以 AttributeDocumentFragmentElementEntityReference 节点的子节点的形式出现。
Whitespace 标记间的空白。
XmlDeclaration XML 声明(例如,<?xml version='1.0'?>)。XmlDeclaration 节点必须是文档中的第一个节点。它不能具有子级。它是 Document 节点的子级。它可以具有提供版本和编码信息的属性。
分享到:
评论

相关推荐

    1.ASP.NET.2.0.XML.高级编程(第3版) [1/3]

    \r\n 3.1.11 XML和ADO.NET\r\n 3.1.12 ASP.NET配置 \r\n 3.2 小结 \r\n第4章 用XmlReader和XmlWriter读写XML数据\r\n 4.1 XML的读取器和书写器\r\n 4.2 使用XmlReader类读取XML\r\n 4.2.1 XmlReader简介 ...

    2.ASP.NET.2.0.高级编程(第4版) [1/7]

    内容简介回到顶部↑本书全面介绍了ASP.NET各种编程技能和2.0版中的巨大变化,并详细阐述了2.0版中的每个新特性。书中提供了大量的实例,可帮助读者快速掌握如何在.NET平台下开发功能强大的ASP.NET应用程序。本书适合...

    ASP.NET2.0高级编程(第4版)1/6

    本书全面介绍了ASP.NET各种编程技能和2.0版中的巨大变化,并详细阐述了2.0版中的每个新特性。书中提供了大量的实例,可帮助读者快速掌握如何在.NET平台下开发功能强大的ASP.NET应用程序。本书适合有一些基础的ASP...

    ASP.NET——XML文件操作篇

    主要是对XML文件的写入和读取. 读取的方式分为:DOM读取,XMLReader读取,Xpath读取 XSL显示XML和XML文件的验证.

    真实世界的XML:使用.NET框架中集成的读取器和写入

    火龙果软件工程技术中心 本页内容从MSXML到.NET中的XML XML分析模型 XmlReader类 分析属性内容 对XML文本进行操作 字符串和片段 验证读取器 节点读取器 XmlTextWriter类 读取和写入流 设计XmlReadWriter...

    .NET使XML串行化易如反掌

    XmlDocument 类能让你像处理文件一样处理XML 数据, 而XmlReader, XmlWriter, 和它们的派生类使你能够将XML 数据做为数据流处理. XmlSerializer 则提供了另外的方法, 它使你能够将自己的对象串行和反串行化为XML. ...

    SimpleXMLReader, 包装的XMLReader类,用于对大型xml进行简单的SAX读取.zip

    SimpleXMLReader, 包装的XMLReader类,用于对大型xml进行简单的SAX读取 简单的XML阅读器包装器XMLReader类,用于简单的英镑 SAX -reading ( 简单的XPath -queries ),代价为大。对其他xml库的内存使用的最小 ( 。...

    .net读写xml文档详解

    System.Xml包含了一些和XML文档的读写操作相关的类,它们分别是:XmlReader、XmlTextReader、XmlValidatingReader、XmlNodeReader、XmlWriter、XmlTextWriter 以及 XmlNode(它的子类包括:XmlDocument、...

    ADO.NET中使用XML

    System.Xml.XmlReader myReader; ... myReader = mySqlCommand.ExecuteXmlReader(); DataSet DataSet myDataSet = new DataSet(); 读 myDataSet.ReadXml("C:\myData.XML"); 结构 myDataSet.ReadXmlSchema("C:\...

    使用 XmlReader 读取 XML 文档

    使用 XML Reader 读取 XML 文档,有多个XML Reader 读取 XML 文档的例子,适用于初学者。

    ado[1].net中文手册 学习 ado.net的重要资料

    从 SQL Server 中以 XML 形式获取数据:描述如何使用 Command 以 XmlReader 形式返回 SQL Server FOR XML 查询的结果。 从 DataAdapter 填充 DataSet:描述如何通过 DataAdapter 来使用表、列和行填充 DataSet。 ...

    php xmlReader & xmlWriter

    php xmlReader & xmlWriter

    xml字符串转化Dataset

    用C#编程实现显示XML文件中信息的方法是使用.NET提供的标准类把XML文件内容读入一个StreamReader类对象中,再用XmlDatadocument类的DataSet读XML的方法去读XML信息到DataSet中,DataSet再以DataView的方式赋给一个Web...

    RssReader:基于 XmlReader 类的非常简单的 RSS 阅读器

    阅读器 基于 XmlReader 类的非常简单的 RSS 阅读器。

    ADO.NET本质论.pdf

    7.8 使用sqlxml和.net 7.9 小结 第8章 提供程序:ado.net和数据提供程序 8.1 如何选择 8.2 保留ole db:ole db概念总结 8.3 保留ole db:与oledb数据提供程序交互 8.3.1 主要的共型和类型映射 ...

    Silverlight使用XmlReader读取XML并加载到TreeView

    Silverlight使用XmlReader读取XML并加载到TreeView

    ADO.NET在开发中的部分使用方法和技巧.pdf

    六、使用 XmlReader 检索 XML 数据 七、如何使用存储过程输出参数来检索单个行 八、使用存储过程输出参数来检索单个行 九、使用 SqlDataReader 对象来返回单个行 十、如何使用 ExecuteScalar 来检索单个项 十一、...

Global site tag (gtag.js) - Google Analytics