System.Xml.XmlReader.ReadValueChunk 方法

方法描述

读取嵌入在 XML 文档中的大量文本流。

语法定义(C# System.Xml.XmlReader.ReadValueChunk 方法 的用法)

public virtual int ReadValueChunk(
	char[] buffer,
	int index,
	int count
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
buffer System-Char[] 字符数组,充当文本内容写入到的缓冲区。此值不能为 null。
index System-Int32 缓冲区中的偏移量,XmlReader 可以从这个位置开始复制结果。
count System-Int32 要复制到缓冲区中的最大字符数。此方法返回复制的实际字符数。
返回值 System.Int32 读取到缓冲区中的字符数。 如果不再有文本内容,则零。

提示和注释

此方法支持采用流形式读取 XML 文档中嵌入的大量文本流,即,一次分配少量的字符,而不是对整个值分配一个字符串。 可以在拥有值(HasValue 为 true)的任何节点上调用此方法。不过,只有在文本、空白和有意义的空白节点上调用时才会实际流化节点值。 其他节点类型值则进行缓存,包括特性节点和 CDATA 节点。

此方法只返回 Value 属性的内容,不会移动 XmlReader。

此方法在指定的偏移位置 (index),将节点值的指定字符数 (count) 读到字符缓冲区 (buffer) 中,然后返回已写入缓冲区的字符数。 当此方法达到值的末尾时,它将返回 0。 此时,不能重新启动它再次读取该值。

在每次调用 ReadValueChunk 之间,XmlReader 属性不会更改,但 Value 属性除外。 访问 Value 属性时,它可能返回部分值(ReadValueChunk 尚未返回全部字符),也可能返回全部值,具体取决于实现。 System.Xml 名称空间中的所有 XmlReader 实现都返回 Value 属性实现的部分值。

在每次调用 ReadValueChunk 之间可以调用任何 Read 方法。 如果发生这种情况,XmlReader 将移动到流中的下一个 XmlNodeType,而且会跳过所有此时仍未返回的字符。

可能会发生 ReadValueChunk 返回的字符数少于请求字符数的情况。 例如,假定有一个长度为 200 个字符的值,在位置 127 和 128 处有一个代理项对,且您使用具有 128 个字符的缓冲区调用 ReadValueChunk,则该方法调用将返回 127 个字符而不是请求的 128 个字符。 然后将在下一个 ReadValueChunk 调用中返回代理项对。 这种情况下,ReadValueChunk 不会返回请求的 128 个字符,因为这样做会导致缓冲区末尾的代理项对不完整。

System.Xml.XmlReader.ReadValueChunk 方法例子


异常

异常 异常描述
InvalidOperationException 当前节点没有值(HasValue 为 false)。
ArgumentNullException buffer 值为 null。
ArgumentOutOfRangeException 缓冲区中的索引或者索引与计数之和大于分配的缓冲区大小。
NotSupportedException XmlReader 实现不支持此方法。
XmlException XML 数据不是格式良好的。

命名空间

namespace: System.Xml

程序集: System.Xml(在 System.Xml.dll 中)

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1 受以下版本支持:

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。