System.Xml.XmlReader.ReadContentAs 方法

方法描述

将内容作为指定类型的对象读取。

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

public virtual Object ReadContentAs(
	Type returnType,
	IXmlNamespaceResolver namespaceResolver
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
returnType System-Type 要返回的值的类型。“注意” 随着 .NET Framework 3.5 的发布,returnType 参数的值现在可以是 DateTimeOffset 类型。
namespaceResolver System-Xml-IXmlNamespaceResolver 一个 IXmlNamespaceResolver 对象,用于解析与类型转换有关的任何命名空间前缀。例如,将 XmlQualifiedName 对象转换为 xs:string 时可以使用此对象。该值可为 null。
返回值 System.Object 已转换为请求类型的串联文本内容或特性值。

提示和注释

此方法读取当前读取器位置的文本内容并将它转换为请求的返回类型。 文本、空白、有意义的空白和 CDATA 节串联在一起。 将跳过注释和处理指令并自动对实体引用进行解析。

此方法用于读取、转换(如果需要)和返回当前节点内容中的原子值项。 如果输入类型是当前节点类型的有效映射,则返回包含当前节点值的目标类型的实例。 将 XML 数据类型映射到 CLR 类型 主题包含默认映射的列表。

例如,如果您有以下 XML 文本:

复制

123 456

如果数据是类型化数据并将字符串数组提供给 ReadContentAs 方法调用,则根据有效 CLR 类型映射的列表从字符串转换整数值。

如果数据是非类型化数据且已经向 ReadContentAs 方法调用提供了字符串数组,则内容被分析为单独的字符串。 返回一个包含两个字符串的数组,其值为“123”和“456”。 不保留内容中的空格。

通常在读取非类型化数据时,会根据提供的类型对内容进行分析。 例如,如果向 ReadContentAs 方法调用提供一个整数数组,则会将字符串分析为一个整数数组 {123,456}。

在下面的示例中,XML 文本没有被空格分开。

复制

123456789

如果内容是非类型化的且已经向 ReadContentAs 方法调用提供了字符串数组,则返回一个数组,其中包含一个值为“123456789”的串联字符串。

下表介绍此方法如何处理每种节点类型。

XmlNodeType

返回值

读取器行为

Text

CDATA

Whitespace

SignificantWhitespace

EntityReference

EndEntity

连接的文本内容、CDATA、转换为请求类型的空白节点和有效空白节点。

移动到下一个开始元素标记或结束元素标记。 实体引用会自动扩展。

Attribute

与针对特性值调用 XmlConvert.ToXxx 相同。

读取器仍保留在当前位置。

Comment

ProcessingInstruction

忽略处理指令 (PI) 或注释,并读取 PI 或注释后的串联形式的文本内容。

移动到下一个开始元素标记或结束元素标记。 实体引用会自动扩展。

EndElement

空字符串。

读取器仍保留在当前位置。

Element

XmlDeclaration

None

Document

DocumentType

Notation

Entity

DocumentFragment

引发 InvalidOperationException 异常。

未定义,虽然一般情况下读取器仍位于当前位置。

有关更多信息,请参见读取类型化数据和 W3C XML Schema Part 2: Datatypes(W3C XML 架构第 2 部分:数据类型)建议。

System.Xml.XmlReader.ReadContentAs 方法例子

该示例将 dataFile_2.xml 文件用作输入。


  
    9.95
  
  
    5.95
  
  
    12.95
  

异常

异常 异常描述
FormatException 内容格式不是目标类型的正确格式。
InvalidCastException 尝试进行的强制转换无效。
ArgumentNullException returnType 值为 null。
InvalidOperationException 当前节点不是所支持的节点类型。 有关详细信息,请参见下表。
OverflowException 读取 Decimal.MaxValue。

命名空间

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 系统要求。