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

 

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 节点的子级。它可以具有提供版本和编码信息的属性。
评论

相关推荐

    MongoDB分片集群搭建教程:副本集创建与数据分片

    内容概要:本文提供了详细的MongoDB分片集群的搭建指导,涵盖了从环境准备、配置文件编写、副本集的建立、主节点的选择、配置服务器和数据分片服务器的配置到最后的路由节点的搭建与操作整个流程,以及对数据库的哈希与范围两种分片策略的应用介绍和具体命令执行。 适合人群:熟悉NoSQL数据库概念并对MongoDB有一定了解的技术人员,尤其是在大型数据管理和分布式数据库架构设计中有需求的开发者。 使用场景及目标:帮助技术人员掌握构建高效能、高可用性的MongoDB分片集群的方法,适用于处理大规模、实时性强的数据存储与读取场景。 其他说明:文中通过实例演示了每个步骤的具体操作方法,便于跟随文档实操,同时也介绍了可能遇到的问题及其解决方案,如在没有正确配置的情况下试图写入数据时出现错误等情况的处理。

    CPPC++_嵌入式硬件的物联网解决方案blinker库与Arduino ESP8266 ESP32一起工作.zip

    CPPC++_嵌入式硬件的物联网解决方案blinker库与Arduino ESP8266 ESP32一起工作

    CPPC++_逆向调用QQ Mojo IPC与WeChat XPlugin.zip

    CPPC++_逆向调用QQ Mojo IPC与WeChat XPlugin

    CPPC++_现代活动指标.zip

    CPPC++_现代活动指标

    CPPC++_Xournal是一款手写笔记软件,支持PDF注释,使用C语言编写,支持GTK3,支持Linux,如Ubu.zip

    CPPC++_Xournal是一款手写笔记软件,支持PDF注释,使用C语言编写,支持GTK3,支持Linux,如Ubu

    基于SSM学生实习管理系统前台小程序与后台管理系统开发实践

    资源概述: 本资源提供了一套完整的学生实习管理系统解决方案,涵盖了前台小程序页面与后台管理系统两大模块。前台小程序页面设计简洁直观,用户可根据不同身份(学生或企业)进行登录。学生用户能够方便地浏览并投递感兴趣的实习岗位,而企业用户则能轻松发布实习信息,吸引优秀人才。后台管理系统功能全面,包括个人中心、首页、学生管理、教师管理、企业管理、招聘管理、评分管理以及实习管理等多个方面,为管理员提供了强大的数据管理和操作工具。 技术栈亮点: SSM框架:系统后台采用Spring、Spring MVC和MyBatis Plus(简称SSM)作为核心开发框架,确保了系统的稳定性、可扩展性和可维护性。Spring作为控制反转(IoC)和面向切面编程(AOP)的容器,为系统提供了强大的业务逻辑处理能力;Spring MVC则负责处理Web请求和响应,实现了前后端的分离;MyBatis Plus作为持久层框架,简化了数据库操作,提高了开发效率。 MySQL数据库:系统采用MySQL作为数据库存储解决方案,支持大数据量的存储和高效查询。 如有侵权请联系我删除,谢谢

    微服务闪聚支付项目.zip

    微服务闪聚支付项目

    Rust 与 Java 互调实战示例

    博客链接 https://blog.csdn.net/weixin_47560078/article/details/143714557 文章从原理介绍出发,实现了 Rust 与 Java 的互调。利用 JNI 技术,可以充分发挥 Rust 的性能优势,同时保持 Java 的跨平台特性。这种技术组合适用于对性能要求较高的应用场景,如图像处理、数据分析和系统级编程等。

    CPPC++_这是我翻译的艾根中文文档.zip

    cppc++

    Matlab实现斑马优化算法ZOA-TCN-Multihead-Attention多输入单输出回归预测算法研究.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    Matlab实现雪融优化算法SAO-TCN-Multihead-Attention多输入单输出回归预测算法研究.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    分布式事务lcn.zip

    分布式事务lcn

    基于Simulink的正弦波PWM技术和三次谐波注入PWM技术研究.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    【风电功率预测】基于BiTCN的风电功率多变量输入预测研究附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    CPPC++_这是由一块迷你带OV2640双DRV8833驱动TypeC接口PSRAM的ESP32PicoD4开发板驱.zip

    cppc++

    JAVA安卓手机与电脑的socket通信源码数据库 其他源码类型 WinForm

    安卓手机与电脑的socket通信源码

    Anaconda:JupyterNotebook使用教程.docx

    Anaconda:JupyterNotebook使用教程.docx

    Amazon S3:S3静态网站托管教程.docx

    Amazon S3:S3静态网站托管教程.docx

    Python商品销售数据分析可视化项目源码(期末大作业).zip

    Python商品销售数据分析可视化项目源码(期末大作业).zip,个人经导师指导并认可通过的98分大作业设计项目。主要针对计算机相关专业的正在做期末大作业设计的学生和需要项目实战练习的学习者,可作为课程设计、期末大作业,代码资料完整下载可用。 Python商品销售数据分析可视化项目源码(期末大作业).zip,个人经导师指导并认可通过的98分大作业设计项目。主要针对计算机相关专业的正在做期末大作业设计的学生和需要项目实战练习的学习者,可作为课程设计、期末大作业,代码资料完整下载可用。Python商品销售数据分析可视化项目源码(期末大作业).zip,个人经导师指导并认可通过的98分大作业设计项目。主要针对计算机相关专业的正在做期末大作业设计的学生和需要项目实战练习的学习者,可作为课程设计、期末大作业,代码资料完整下载可用。Python商品销售数据分析可视化项目源码(期末大作业).zip,个人经导师指导并认可通过的98分大作业设计项目。主要针对计算机相关专业的正在做期末大作业设计的学生和需要项目实战练习的学习者,可作为课程设计、期末大作业,代码资料完整下载可用。Python商品销售数据分析

    CPPC++_wechathookWeChatApi微信Api微信hook微信接口python微信接口java微信Ap.zip

    CPPC++_wechathookWeChatApi微信Api微信hook微信接口python微信接口java微信Ap

Global site tag (gtag.js) - Google Analytics