次の方法で共有


XmlReader.ReadElementContentAsObject メソッド

定義

現在の要素を読み取り、そのコンテンツを Object として返します。

オーバーロード

ReadElementContentAsObject()

現在の要素を読み取り、そのコンテンツを Object として返します。

ReadElementContentAsObject(String, String)

指定されたローカル名と名前空間 URI が現在の要素のものと一致することを確認し、現在の要素を読み取って、コンテンツを Object として返します。

ReadElementContentAsObject()

現在の要素を読み取り、そのコンテンツを Object として返します。

public:
 virtual System::Object ^ ReadElementContentAsObject();
public virtual object ReadElementContentAsObject ();
abstract member ReadElementContentAsObject : unit -> obj
override this.ReadElementContentAsObject : unit -> obj
Public Overridable Function ReadElementContentAsObject () As Object

戻り値

Object

最も適切な型のボックス化された共通言語ランタイム (CLR) オブジェクト。 ValueType プロパティは、適切な CLR 型を判断します。 内容がリスト型として型指定されている場合、このメソッドは適切な型のボックス化されたオブジェクトの配列を返します。

例外

XmlReader が要素に配置されません。

  • または -

先行の非同期操作が完了する前に、XmlReader メソッドが呼び出されました。 この場合、「非同期操作が既に実行されています」というメッセージと共に InvalidOperationException がスローされます。

現在の要素には、子要素が含まれています。

  • または -

要素のコンテンツを要求された型に変換できません。

引数に null を渡してメソッドが呼び出されました。

次の例では、このメソッドを使用してノードの内容を price 読み取います。 リーダーは、スキーマ内の情報を使用して、コンテンツを正しいデータ型にマップします。

// Create a validating reader.
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.Schemas.Add("urn:items", "item.xsd");	
 XmlReader reader = XmlReader.Create("item.xml", settings);

// Get the CLR type of the price element.
reader.ReadToFollowing("price");
Console.WriteLine(reader.ValueType);

// Return the value of the price element as Decimal object.
Decimal price = (Decimal) reader.ReadElementContentAsObject();

// Add 2.50 to the price.
price = Decimal.Add(price, 2.50m);
' Create a validating reader.
Dim settings As New XmlReaderSettings()
settings.ValidationType = ValidationType.Schema
settings.Schemas.Add("urn:items", "item.xsd")
Dim reader As XmlReader = XmlReader.Create("item.xml", settings)
      
' Get the CLR type of the price element. 
reader.ReadToFollowing("price")
Console.WriteLine(reader.ValueType)
      
' Return the value of the price element as Decimal object.
Dim price As [Decimal] = CType(reader.ReadElementContentAsObject(), [Decimal])
      
' Add 2.50 to the price.
price = [Decimal].Add(price, 2.5D)

この例では、次の 2 つのファイルを入力として使用します。

item.xml

<item xmlns="urn:items" productID='123098'>
 <name>hammer</name>
 <price>9.95</price>
 <supplierID>1929</supplierID>
</item>

item.xsd

<?xml version="1.0"?>
<xs:schema xmlns:tns="urn:items" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="urn:items" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="item">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="name" type="xs:string" />
        <xs:element name="price" type="xs:decimal" />
        <xs:element name="supplierID" type="xs:unsignedShort" />
      </xs:sequence>
      <xs:attribute name="productID" type="xs:unsignedInt" use="required" />
    </xs:complexType>
  </xs:element>
</xs:schema>

注釈

このメソッドは、開始タグ、要素の内容を読み取り、リーダーを終了要素タグの後に移動します。 エンティティを展開し、処理命令とコメントを無視します。 要素には、単純なコンテンツのみを含めることができます。 つまり、子要素を持つことはできません。

詳細については、リファレンス ページの XmlReader 「解説」セクションと W3C XML スキーマパート 2: データ型に関する推奨事項を 参照してください。

このメソッドの非同期バージョンについては、次を参照してください ReadElementContentAsObjectAsync

適用対象

ReadElementContentAsObject(String, String)

指定されたローカル名と名前空間 URI が現在の要素のものと一致することを確認し、現在の要素を読み取って、コンテンツを Object として返します。

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

パラメーター

localName
String

要素のローカル名。

namespaceURI
String

要素の名前空間 URI。

戻り値

Object

最も適切な型のボックス化された共通言語ランタイム (CLR) オブジェクト。 ValueType プロパティは、適切な CLR 型を判断します。 内容がリスト型として型指定されている場合、このメソッドは適切な型のボックス化されたオブジェクトの配列を返します。

例外

XmlReader が要素に配置されません。

  • または -

先行の非同期操作が完了する前に、XmlReader メソッドが呼び出されました。 この場合、「非同期操作が既に実行されています」というメッセージと共に InvalidOperationException がスローされます。

現在の要素には、子要素が含まれています。

  • または -

要素のコンテンツを要求された型に変換できません。

引数に null を渡してメソッドが呼び出されました。

指定されたローカル名と名前空間 URI は、現在読み取り中の要素と一致しません。

注釈

このメソッドは、開始タグ、要素の内容を読み取り、リーダーを終了要素タグの後に移動します。 エンティティを展開し、処理命令とコメントを無視します。 要素には、単純なコンテンツのみを含めることができます。 つまり、子要素を持つことはできません。

詳細については、リファレンス ページの XmlReader 「解説」セクションと W3C XML スキーマパート 2: データ型に関する推奨事項を 参照してください。

適用対象