XmlReader.ReadElementContentAs 方法

定义

读取当前元素,并将内容作为指定类型的对象返回。

重载

ReadElementContentAs(Type, IXmlNamespaceResolver)

将元素内容作为请求类型读取。

ReadElementContentAs(Type, IXmlNamespaceResolver, String, String)

检查指定的本地名称和命名空间 URI 与当前元素的本地名称和命名空间 URI 是否匹配,然后将元素内容作为请求类型读取。

ReadElementContentAs(Type, IXmlNamespaceResolver)

将元素内容作为请求类型读取。

public:
 virtual System::Object ^ ReadElementContentAs(Type ^ returnType, System::Xml::IXmlNamespaceResolver ^ namespaceResolver);
public virtual object ReadElementContentAs (Type returnType, System.Xml.IXmlNamespaceResolver namespaceResolver);
abstract member ReadElementContentAs : Type * System.Xml.IXmlNamespaceResolver -> obj
override this.ReadElementContentAs : Type * System.Xml.IXmlNamespaceResolver -> obj
Public Overridable Function ReadElementContentAs (returnType As Type, namespaceResolver As IXmlNamespaceResolver) As Object

参数

returnType
Type

要返回的值的类型。

注意:随着 .NET Framework 3.5 的发布,returnType 参数的值现在可以为 DateTimeOffset 类型。

namespaceResolver
IXmlNamespaceResolver

一个 IXmlNamespaceResolver 对象,用于解析与类型转换有关的任何命名空间前缀。

返回

Object

转换为请求类型的对象的元素内容。

例外

XmlReader 未定位在元素上。

  • 或 -

在上一次异步操作完成之前调用了 XmlReader 方法。 在此情况下,会引发 InvalidOperationException 并显示消息“异步操作已在进行中。”

当前元素包含子元素。

  • 或 -

无法将元素内容转换成请求的类型。

使用 null 参数调用此方法。

读取 Decimal.MaxValue

示例

以下示例使用 ReadElementContentAs 该方法读取节点的内容 date

using (XmlReader reader = XmlReader.Create("dataFile.xml")) {
     reader.ReadToFollowing("date");
     DateTime date = (DateTime) reader.ReadElementContentAs(typeof(System.DateTime), null);
  
     // If the current culture is "en-US",
     // this writes "Wednesday, January 8, 2003".
     Console.WriteLine(date.ToLongDateString());	
}
Using reader As XmlReader = XmlReader.Create("dataFile.xml")
  reader.ReadToFollowing("date")
  Dim [date] As DateTime = CType(reader.ReadElementContentAs(GetType(System.DateTime), Nothing), DateTime)
            
  ' If the current culture is "en-US",
  ' this writes "Wednesday, January 8, 2003".
  Console.WriteLine([date].ToLongDateString())
End Using

示例使用 dataFile.xml 文件作为输入。

<root>
  <stringValue>
     <!--comment-->
     <?some pi?>
      text value of the element.
  </stringValue>
  <longValue>270000000000001</longValue>
  <number>0</number>
  <double>2E10</double>
  <date>2003-01-08T15:00:00-00:00</date>
</root>

注解

此方法读取起始标记、元素的内容,并将读取器移到结束元素标记之后。 它扩展实体并忽略处理指令和注释。 元素只能包含简单内容。 也就是说,它不能有子元素。

有关详细信息,请参阅参考页的 XmlReader “备注”部分和 W3C XML 架构第 2 部分:数据类型 建议。

有关此方法的异步版本,请参阅 ReadElementContentAsAsync

适用于

ReadElementContentAs(Type, IXmlNamespaceResolver, String, String)

检查指定的本地名称和命名空间 URI 与当前元素的本地名称和命名空间 URI 是否匹配,然后将元素内容作为请求类型读取。

public:
 virtual System::Object ^ ReadElementContentAs(Type ^ returnType, System::Xml::IXmlNamespaceResolver ^ namespaceResolver, System::String ^ localName, System::String ^ namespaceURI);
public virtual object ReadElementContentAs (Type returnType, System.Xml.IXmlNamespaceResolver namespaceResolver, string localName, string namespaceURI);
abstract member ReadElementContentAs : Type * System.Xml.IXmlNamespaceResolver * string * string -> obj
override this.ReadElementContentAs : Type * System.Xml.IXmlNamespaceResolver * string * string -> obj
Public Overridable Function ReadElementContentAs (returnType As Type, namespaceResolver As IXmlNamespaceResolver, localName As String, namespaceURI As String) As Object

参数

returnType
Type

要返回的值的类型。

注意:随着 .NET Framework 3.5 的发布,returnType 参数的值现在可以为 DateTimeOffset 类型。

namespaceResolver
IXmlNamespaceResolver

一个 IXmlNamespaceResolver 对象,用于解析与类型转换有关的任何命名空间前缀。

localName
String

元素的本地名称。

namespaceURI
String

元素的命名空间 URI。

返回

Object

转换为请求类型的对象的元素内容。

例外

XmlReader 未定位在元素上。

  • 或 -

在上一次异步操作完成之前调用了 XmlReader 方法。 在此情况下,会引发 InvalidOperationException 并显示消息“异步操作已在进行中。”

当前元素包含子元素。

  • 或 -

无法将元素内容转换成请求的类型。

使用 null 参数调用此方法。

指定的本地名称和命名空间 URI 与所读取的当前元素的本地名称和命名空间 URI 不匹配。

读取 Decimal.MaxValue

注解

此方法读取起始标记、元素的内容,并将读取器移到结束元素标记之后。 它扩展实体并忽略处理指令和注释。 元素只能包含简单内容。 也就是说,它不能有子元素。

有关详细信息,请参阅参考页的 XmlReader “备注”部分和 W3C XML 架构第 2 部分:数据类型 建议。

适用于