XmlReader.ReadElementContentAsObject 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
以 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
傳回
最合適類型的 Boxed Common Language Runtime (CLR) 物件。 ValueType 屬性會判斷適當的 CLR 類型。 如果內容的類型是清單類型,則這個方法會傳回適當類型之 Boxed 物件的陣列。
例外狀況
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)
此範例使用下列兩個檔案作為輸入。
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。
傳回
最合適類型的 Boxed Common Language Runtime (CLR) 物件。 ValueType 屬性會判斷適當的 CLR 類型。 如果內容的類型是清單類型,則這個方法會傳回適當類型之 Boxed 物件的陣列。
例外狀況
XmlReader 並不是放置在項目上。
-或-
在先前的非同步作業完成前呼叫了 XmlReader 方法。 在此情況下,會擲回 InvalidOperationException 與「非同步作業已經在進行中」的訊息。
方法是以 null
引數呼叫。
指定的區域名稱和命名空間 URI,與目前正在讀取的項目不相符。
備註
這個方法會讀取開始標籤、元素的內容,並將讀取器移至結束元素標籤的後面。 它會展開實體,並忽略處理指示和批註。 元素只能包含簡單內容。 也就是說,它不能有子專案。
如需詳細資訊,請參閱參考頁面的 XmlReader 一節和 W3C XML 架構第 2 部分:資料類型 建議。