读取内容
更新: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"。