读取内容

更新:November 2007

XmlReader 类包括可以用于读取内容的成员。

说明:

本主题中所述的成员以字符串值的形式返回内容。 如果要读取类型化内容,请参见读取类型化数据

Value 属性

Value 属性可以用于获取当前节点的文本内容。 返回的值取决于当前节点的节点类型。 下表介绍每种可能的节点类型所返回的内容。

节点类型

Attribute

属性的值。

CDATA

CDATA 节的内容。

Comment

注释的内容。

DocumentType

内部子集。

ProcessingInstruction

全部内容(不包括指令目标)。

SignificantWhitespace

混合内容模型中任何标记之间的空白。

Text

文本节点的内容。

Whitespace

标记之间的空白。

XmlDeclaration

声明的内容。

所有其他节点类型

空字符串。

ReadString 方法

ReadString 方法以字符串的形式返回元素或文本节点的内容。

如果 XmlReader 位于某个元素上,ReadString 将所有文本、有效空白、空白和 CDATA 节节点串联在一起,并以元素内容的形式返回串联的数据。 当遇到任何标记时,读取器停止。 这可以在混合内容模型中发生,也可以在读取元素结束标记时发生。

如果 XmlReader 位于某个文本节点上,ReadString 将对文本、有效空白、空白和 CDATA 节节点执行相同的串联。 读取器在第一个不属于以前命名的类型的节点处停止。 如果读取器定位在属性文本节点上,则 ReadString 与读取器定位在元素开始标记上时的功能相同。 它返回所有串联在一起的元素文本节点。

说明:

ReadString 方法在处理指令和注释处停止。 不会忽略这些内容。

ReadInnerXml 方法

ReadInnerXml 方法返回当前节点的所有内容(包括标记)。 不返回当前节点(开始标记)和对应的结束节点(结束标记)。 例如,如果有 XML 字符串 <node>this<child id="123"/></node>,则 ReadInnerXml 将返回 this<child id="123"/>。

下表描述如何处理元素和属性节点。

节点类型

初始

位置

XML 片断

返回

位于下列内容

之后

Element

在 item1 开始标记上。

<item1>text1</item1><item2>text2</item2>

text1

在 item2 开始标记上。

Attribute

在 attr1 属性节点上。

<item attr1="val1" attr2="val2">text</item>

val1

保留在 attr1 属性节点上。

如果读取器定位在叶节点上,则调用 ReadInnerXml 等效于调用 Read

ReadOuterXml 方法

ReadOuterXml 方法返回当前节点及其所有子级的所有 XML 内容,包括标记。 其行为与 ReadInnerXml 类似,只是同时还返回开始标记和结束标记。

使用上表中的值时,如果读取器位于 item1 开始标记处,则 ReadOuterXml 将返回 <item1>text1</item1>。 如果读取器位于 attr1 属性节点上,ReadOuterXml 将返回 attr1="val1"。

请参见

概念

读取元素

读取属性

用 XmlReader 读取 XML