更新:November 2007
XmlReader 类包括可以用于读取内容的成员。
| .gif) 说明: | 
|---|
| 本主题中所述的成员以字符串值的形式返回内容。 如果要读取类型化内容,请参见读取类型化数据。 | 
Value 属性
Value 属性可以用于获取当前节点的文本内容。 返回的值取决于当前节点的节点类型。 下表介绍每种可能的节点类型所返回的内容。
| 节点类型 | 值 | 
|---|---|
| Attribute | 属性的值。 | 
| CDATA | CDATA 节的内容。 | 
| Comment | 注释的内容。 | 
| DocumentType | 内部子集。 | 
| ProcessingInstruction | 全部内容(不包括指令目标)。 | 
| SignificantWhitespace | 混合内容模型中任何标记之间的空白。 | 
| Text | 文本节点的内容。 | 
| Whitespace | 标记之间的空白。 | 
| XmlDeclaration | 声明的内容。 | 
| 所有其他节点类型 | 空字符串。 | 
ReadString 方法
ReadString 方法以字符串的形式返回元素或文本节点的内容。
如果 XmlReader 位于某个元素上,ReadString 将所有文本、有效空白、空白和 CDATA 节节点串联在一起,并以元素内容的形式返回串联的数据。 当遇到任何标记时,读取器停止。 这可以在混合内容模型中发生,也可以在读取元素结束标记时发生。
如果 XmlReader 位于某个文本节点上,ReadString 将对文本、有效空白、空白和 CDATA 节节点执行相同的串联。 读取器在第一个不属于以前命名的类型的节点处停止。 如果读取器定位在属性文本节点上,则 ReadString 与读取器定位在元素开始标记上时的功能相同。 它返回所有串联在一起的元素文本节点。
| .gif) 说明: | 
|---|
| 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"。