`
wangdeshui
  • 浏览: 257271 次
  • 性别: 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]

    原书名: ASP.NET2.0XML高级编程(第3版) 原出版社: 作者: (美)然哥诺辛尔蒙 著,肖奕,曹俊 译 出版社: 清华大学出版社 书号: 7302132141 出版日期:2006-9-1 开本: 页码: 519 所属类别: 程序设计→...

    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.NET2.0认证题

    ### ASP.NET 2.0 认证题解析 #### 题目一:XML文档验证错误查找 **问题描述:** 假设你正在开发一个Web应用程序,该应用的主要功能是处理XML文档,它需要从多个来源接收这些文档,然后将它们读取并存储到Microsoft...

    ASP.NET操作XML

    ASP.NET的`XslTransform`类(.NET Framework 1.x)或`XslCompiledTransform`类(.NET Framework 2.0及以上版本)支持XSLT转换。这允许开发者定义样式表来改变XML文档的展现形式。 4. **LINQ to XML**: .NET ...

    数据访问技术系列课程(9):.NET Framework 2.0中的数据访问新特性

    - **ASP.NET Membership**:提供了用户验证和角色管理的框架,方便创建安全的Web应用程序。 - **ASP.NET Profile**:支持用户配置文件的存储和检索,便于个性化设置的实现。 - **ASP.NET Providers**:一套可扩展...

    ASP. 2.0 XML高级编程 (第3版)

    ### ASP.NET 2.0 XML 高级编程 (第3版) —— XML 数据验证章节概览 #### 5.1 XML验证 **验证** 是一个确保XML文档遵循定义好的结构规则的过程。这一过程通常通过 **XSD模式** 或者 **DTD**(Document Type ...

    xml一。。。。。。。。。。。。

    在ASP.NET 2.0中,XML的使用广泛,包括XML数据验证、XML文档操作(如XmlReader和XmlWriter类)、XML与ADO.NET的结合、XML数据的显示以及XML序列化等。通过学习XML,开发者可以构建更灵活、可扩展的Web应用程序,如...

    Visual C# 2005开发技术

    6. **ASP.NET增强**:Visual C# 2005与ASP.NET 2.0结合,提供了更强大的Web应用程序开发能力,如母版页、皮肤、站点地图、验证控件等,提高了开发效率和用户体验。 7. **调试与测试工具**:Visual Studio 2005提供...

    .net数据访问类 SQL Helper 类

    .net数据访问类 SQL Helper 介绍 摘要:Data Access Application Block 是一个 .NET 组件,包含优化的数据访问代码,可以帮助用户调用存储过程以及向 SQL Server 数据库发出 SQL 文本命令。它返回 SqlDataReader、...

    asp.net 程序性能优化的七个方面 (c#(或vb.net)程序改进)

    推荐使用XPathDocument和XmlReader,后者允许我们在不完全加载XML文档的情况下,按需读取XML文档中的节点。 通过以上所述的七个方面的程序性能优化策略,开发者可以显著提升***应用程序的执行效率,减少资源消耗,...

    扩展ConfigurationElement以反序列化文本元素

    这在WinForms、ASP.NET应用程序中非常有用,因为这些应用程序经常需要自定义配置来存储用户设置、数据库连接字符串或其他应用程序特定的配置信息。 除了`ConfigurationElement`,`.NET Framework`还提供了一系列...

    SQLHelper.cs

    .net数据访问类 SQL Helper 介绍 摘要:Data Access Application Block 是一个 .NET 组件,包含优化的数据访问代码,可以帮助用户调用存储过程以及向 SQL Server 数据库发出 SQL 文本命令。它返回 SqlDataReader、...

Global site tag (gtag.js) - Google Analytics