- 浏览: 255603 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (293)
- web (1)
- [随笔分类]项目管理 (30)
- [随笔分类]WCF (14)
- 未分类 (1)
- [随笔分类]Linq (4)
- [随笔分类]C#基础 (24)
- 项目 (1)
- [网站分类]3.非技术区(技术之外的文章,但不要涉及任何政治内容) (8)
- [网站分类]1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作) (9)
- [随笔分类]Ubuntu (4)
- ASP.Net (1)
- [网站分类]2..NET新手区(用于发表不合适发表在首页的.NET技术文章,包括小经验、小技巧) (30)
- [随笔分类]ASP.NET MVC (20)
- [随笔分类]ASP.NET (3)
- [随笔分类]程序员厨房 (4)
- [随笔分类]英语学习 (28)
- [网站分类]4.其他技术区 (1)
- [随笔分类]Silverlight (12)
- [随笔分类]CodeSmith (8)
- [随笔分类]其他 (4)
- [随笔分类]Ruby (4)
- [发布至博客园首页] (34)
- [网站分类]其他技术区 (3)
- [随笔分类]Ruby on Rails (2)
- [网站分类].NET新手区 (33)
- [随笔分类]TDD (1)
- [随笔分类]不谈技术 (2)
- [网站分类]非技术区 (7)
最新评论
-
yicone:
You make a mistake when paste t ...
WCF步步为营(一):简单示例 -
jinweijie:
你好,这个实现不错,但是在用了scriptmanager以后就 ...
在服务器端保存ViewState
ASP.NET 2.0 XML 系列(4):用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 | 检查当前节点是否是内容(非空白文本、CDATA、Element、EndElement、EntityReference 或 EndEntity)节点。如果此节点不是内容节点,则读取器向前跳至下一个内容节点或文件结尾。它跳过以下类型的节点:ProcessingInstruction、DocumentType、Comment、Whitespace 或 SignificantWhitespace。 |
MoveToElement | 当在派生类中被重写时,移动到包含当前属性节点的元素。 |
MoveToFirstAttribute | 当在派生类中被重写时,移动到第一个属性。 |
MoveToNextAttribute | 当在派生类中被重写时,移动到下一个属性。 |
Read | 当在派生类中被重写时,从流中读取下一个节点。 |
ReadAttributeValue | 当在派生类中被重写时,将属性值解析为一个或多个 Text、EntityReference 或 EndEntity 节点。 |
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 | 返回表示当前 Object 的 String。 (从 Object 继承。) |
3. XmlNodeType枚举成员
Attribute | 属性(例如,id='123')。 Attribute 节点可以具有以下子节点类型:Text 和 EntityReference。Attribute 节点不以任何其他节点类型子节点的形式出现。不将其视为 Element 的子节点。 |
CDATA | CDATA 节(例如,<![CDATA[my escaped text]]>)。CDATA 节用于转义否则将被识别为标记的文本块。CDATA 节点不能有任何子节点。它可以以 DocumentFragment、EntityReference 和 Element 节点子级的形式出现。 |
Comment | 注释(例如,<!-- my comment -->)。 Comment 节点不能有任何子节点。它可以以 Document、DocumentFragment、Element 和 EntityReference 节点子级的形式出现。 |
Document | 作为文档树的根的文档对象提供对整个 XML 文档的访问。 Document 节点可以具有以下子节点类型:XmlDeclaration、Element(最多一个)、ProcessingInstruction、Comment 和 DocumentType。它不能以任何节点类型子级的形式出现。 |
DocumentFragment | 文档片段。 DocumentFragment 节点将节点或子树与文档关联起来,而实际上并不包含在该文档中。DocumentFragment 节点可以具有以下子节点类型:Element、ProcessingInstruction、Comment、Text、CDATA 和 EntityReference。它不能以任何节点类型子级的形式出现。 |
DocumentType | 由以下标记指示的文档类型声明(例如,<!DOCTYPE...>)。 DocumentType 节点可以具有以下子节点类型:Notation 和 Entity。它可以以 Document 节点子级的形式出现。 |
Element | 元素(例如,<item>)。 Element 节点可以具有以下子节点类型:Element、Text、Comment、ProcessingInstruction、CDATA 和 EntityReference。它可以是 Document、DocumentFragment、EntityReference 和 Element 节点的子级。 |
EndElement | 末尾元素标记(例如,</item>)。 当 XmlReader 到达元素的末尾时,返回 EndElement 节点。 |
EndEntity | 由于调用 ResolveEntity 而使 XmlReader 到达实体替换的末尾时返回。 |
Entity | 实体声明(例如,<!ENTITY...>)。 Entity 节点可以具有表示已展开实体的子节点(例如 Text 和 EntityReference 节点)。它可以以 DocumentType 节点子级的形式出现。 |
EntityReference | 实体引用(例如,#)。 EntityReference 节点可以具有以下子节点类型:Element、ProcessingInstruction、Comment、Text、CDATA 和 EntityReference。它可以以 Attribute、DocumentFragment、Element 和 EntityReference 节点子级的形式出现。 |
None | 如果未调用 Read 方法,则由 XmlReader 返回。 |
Notation | 文档类型声明中的表示法(例如,<!NOTATION...>)。Notation 节点不能具有任何子节点。它可以以 DocumentType 节点子级的形式出现。 |
ProcessingInstruction | 处理指令(例如,<?pi test?>)。 ProcessingInstruction 节点不能具有任何子节点。它可以以 Document、DocumentFragment、Element 和 EntityReference 节点子级的形式出现。 |
SignificantWhitespace | 混合内容模型中标记间的空白或 xml:space="preserve" 范围内的空白。 |
Text | 节点的文本内容。 Text 节点不能具有任何子节点。它可以以 Attribute、DocumentFragment、Element 和 EntityReference 节点的子节点的形式出现。 |
Whitespace | 标记间的空白。 |
XmlDeclaration | XML 声明(例如,<?xml version='1.0'?>)。XmlDeclaration 节点必须是文档中的第一个节点。它不能具有子级。它是 Document 节点的子级。它可以具有提供版本和编码信息的属性。 |
发表评论
-
ASP.Net2.0使用Log4Net(一)
2007-11-24 15:40 1695第一种方法 在web.config中写配置文件 L ... -
ASP.Net2.0使用Log4Net(二)
2007-11-24 17:39 932(二)使用单独的配置文件,不放在web.config里 1. ... -
UML学习笔记
2007-11-25 09:55 710一、UML中的关系 依赖: 如果对象X发生变化,引起另一个对 ... -
NBear学习笔记(一)
2007-12-01 21:14 1132使用已有数据库。(之前先设计实体,再自动生成数据库,发现每次 ... -
NBear学习笔记(二)
2007-12-02 17:14 849本篇演示一对多关系,和两个表联合查询。 使用已有数据库,我们演 ... -
NBear学习笔记(三)
2007-12-04 22:11 881上一篇一对多的关系说的不是很清楚,这篇补充一下。 这篇我们创建 ... -
CSS使用总结
2007-12-12 21:10 664在分配ID和类名时,尽可能保持与表现形式无关,例如con ... -
ASP.NET2.0缓存技术
2007-12-12 23:33 718ASP.NET2.0提供如下缓存方式: Output Cac ... -
VS2008正式版创建silverlight项目失败的解决办法
2008-02-16 09:49 847安装microsoft express blend2 最新的试 ... -
vista英文版语言包安装
2008-02-17 21:35 1123最近,需要给老外截英文vista的一些图,但是系统装的是中文版 ... -
SilverLight显示中文字(一)
2008-02-18 14:42 968我们知道silverlight只提供了一下几种字体, 当我们 ... -
silverlight显示中文字(二):使用TextBlock+Downloader
2008-02-18 16:39 978(一),建立一个Silverlight1.0 site. ... -
SilverLight显示中文字(三) :使用Path和图形
2008-02-18 16:59 696使用path将文字转换为路径 用Direct select ... -
在Silverlight1.1中定义与调用Javascript事件的方法
2008-02-20 13:19 712我们在silverlight1.0 想调用javascrip ... -
在线流程图制作工具
2008-02-26 22:32 12791. DrawAnywhere , 的在线流程图制作工具。 D ... -
VS2008下开发ASP.Net2.0 and AJAX1.0的程序
2008-03-05 13:57 1062为什么要在vs2008下开发ASP.Net2.0 and AJ ... -
VS2008开发Silverlight2程序:环境安装
2008-03-06 13:36 1682微软在MIX08大会,发布了Silverlight 2 Bet ... -
ASP.NET 2.0 XML 系列(1): XML介绍
2008-03-15 12:40 7341.1 简介 XML的一个强大之处在于它的强大可扩展性。XM ... -
ASP.NET 2.0 XML 系列(2): XML技术
2008-03-15 14:13 7041. DTD XML最强大之处是允许自定义标签,但是对 ... -
ASP.NET 2.0 XML 系列(3): .Net Framework中XML类
2008-03-15 14:52 622System.Xml包含了一些和XML文档的读写操作相关的类, ...
相关推荐
原书名: ASP.NET2.0XML高级编程(第3版) 原出版社: 作者: (美)然哥诺辛尔蒙 著,肖奕,曹俊 译 出版社: 清华大学出版社 书号: 7302132141 出版日期:2006-9-1 开本: 页码: 519 所属类别: 程序设计→...
内容简介回到顶部↑本书全面介绍了ASP.NET各种编程技能和2.0版中的巨大变化,并详细阐述了2.0版中的每个新特性。书中提供了大量的实例,可帮助读者快速掌握如何在.NET平台下开发功能强大的ASP.NET应用程序。本书适合...
本书全面介绍了ASP.NET各种编程技能和2.0版中的巨大变化,并详细阐述了2.0版中的每个新特性。书中提供了大量的实例,可帮助读者快速掌握如何在.NET平台下开发功能强大的ASP.NET应用程序。本书适合有一些基础的ASP...
### ASP.NET 2.0 认证题解析 #### 题目一:XML文档验证错误查找 **问题描述:** 假设你正在开发一个Web应用程序,该应用的主要功能是处理XML文档,它需要从多个来源接收这些文档,然后将它们读取并存储到Microsoft...
ASP.NET的`XslTransform`类(.NET Framework 1.x)或`XslCompiledTransform`类(.NET Framework 2.0及以上版本)支持XSLT转换。这允许开发者定义样式表来改变XML文档的展现形式。 4. **LINQ to XML**: .NET ...
- **ASP.NET Membership**:提供了用户验证和角色管理的框架,方便创建安全的Web应用程序。 - **ASP.NET Profile**:支持用户配置文件的存储和检索,便于个性化设置的实现。 - **ASP.NET Providers**:一套可扩展...
### ASP.NET 2.0 XML 高级编程 (第3版) —— XML 数据验证章节概览 #### 5.1 XML验证 **验证** 是一个确保XML文档遵循定义好的结构规则的过程。这一过程通常通过 **XSD模式** 或者 **DTD**(Document Type ...
在ASP.NET 2.0中,XML的使用广泛,包括XML数据验证、XML文档操作(如XmlReader和XmlWriter类)、XML与ADO.NET的结合、XML数据的显示以及XML序列化等。通过学习XML,开发者可以构建更灵活、可扩展的Web应用程序,如...
6. **ASP.NET增强**:Visual C# 2005与ASP.NET 2.0结合,提供了更强大的Web应用程序开发能力,如母版页、皮肤、站点地图、验证控件等,提高了开发效率和用户体验。 7. **调试与测试工具**:Visual Studio 2005提供...
.net数据访问类 SQL Helper 介绍 摘要:Data Access Application Block 是一个 .NET 组件,包含优化的数据访问代码,可以帮助用户调用存储过程以及向 SQL Server 数据库发出 SQL 文本命令。它返回 SqlDataReader、...
推荐使用XPathDocument和XmlReader,后者允许我们在不完全加载XML文档的情况下,按需读取XML文档中的节点。 通过以上所述的七个方面的程序性能优化策略,开发者可以显著提升***应用程序的执行效率,减少资源消耗,...
这在WinForms、ASP.NET应用程序中非常有用,因为这些应用程序经常需要自定义配置来存储用户设置、数据库连接字符串或其他应用程序特定的配置信息。 除了`ConfigurationElement`,`.NET Framework`还提供了一系列...
.net数据访问类 SQL Helper 介绍 摘要:Data Access Application Block 是一个 .NET 组件,包含优化的数据访问代码,可以帮助用户调用存储过程以及向 SQL Server 数据库发出 SQL 文本命令。它返回 SqlDataReader、...