XmlWriter.WriteValue 方法

定義

寫入單一簡單類型的值。

多載

WriteValue(Single)

寫入單精確度浮點數。

WriteValue(Object)

寫入物件值。

WriteValue(Int64)

寫入 Int64 值。

WriteValue(Int32)

寫入 Int32 值。

WriteValue(Double)

寫入 Double 值。

WriteValue(String)

寫入 String 值。

WriteValue(DateTimeOffset)

寫入 DateTimeOffset 值。

WriteValue(DateTime)

寫入 DateTime 值。

WriteValue(Boolean)

寫入 Boolean 值。

WriteValue(Decimal)

寫入 Decimal 值。

備註

方法 WriteValue 接受 Common Language Runtime (CLR) 簡單型別值、根據 XML 架構定義語言 (XSD) 資料類型轉換規則,將它們轉換成字串表示,並使用 方法寫出 WriteString 它們。 這可讓您在 、 XmlReaderXmlWriter 物件之間 XPathDocument 傳遞資料時,以最少的重新分析額外負荷來管線簡單類型值。 處理 CLR 簡單類型和 XmlWriter 實例時,這項功能也很有用。 您可以呼叫 WriteValue 方法來寫入具型別值,而不是使用 類別中的 XmlConvert 方法,在寫出之前,先將具型別的資料轉換成字串值。

針對非同步作業,請將 的 WriteValue 傳回值轉換為字串,並使用 WriteStringAsync 方法。

下表顯示對應至 CLR 類型的預設 XSD 資料類型。

如果 CLR 物件是清單型別 (如 IEnumerableIListICollection),則會將其視為數值型別的陣列。

CLR 類型 預設 XSD 資料類型
System.Boolean xsd:boolean
System.Byte** xsd:integer
System.Byte 陣列 xsd:base64Binary
System.Char** xsd:string
System.DateTime xsd:dateTime
System.Decimal xsd:decimal
System.Double xsd:double
System.Int16** xsd:integer
System.Int32 xsd:integer
System.Int64 xsd:integer
System.Single xsd:float
System.String xsd:string
System.IO.TextReader xsd:string
System.IO.BinaryReader xsd:base64Binary

**這些型別與 CLS 不相容。 它們沒有對應的 WriteValue 方法。

如果連續多次呼叫 WriteValue,則不會使用空格分隔各個值。 您必須在呼叫 WriteWhitespace 之間呼叫 WriteValue,以插入泛空白字元。

WriteValue(Single)

寫入單精確度浮點數。

public:
 virtual void WriteValue(float value);
public virtual void WriteValue (float value);
abstract member WriteValue : single -> unit
override this.WriteValue : single -> unit
Public Overridable Sub WriteValue (value As Single)

參數

value
Single

要寫入的單精確度浮點數。

例外狀況

指定了無效的值。

在先前的非同步作業完成前呼叫了 XmlWriter 方法。 在此情況下,會擲回 InvalidOperationException 與「非同步作業已經在進行中」的訊息。

備註

此方法會採用 Common Language Runtime 物件,並使用 XML 架構定義語言 (XSD) 資料類型轉換規則,將輸入值轉換成所需的輸出類型。

呼叫 WriteValue 方法時,XmlWriter 會根據 XML 結構描述 (XSD) 資料型別規則將值轉換成其字串表示,並使用 WriteString 方法將其寫出。

如果連續多次呼叫 WriteValue,則不會使用空格分隔各個值。 您必須在呼叫 WriteWhitespace 之間呼叫 WriteValue,以插入泛空白字元。 將陣列類型傳遞至多載, XmlWriter.WriteValue(Object) 以寫出相異值的陣列。

如果在輸出僅限文字的實例上 XmlWriter 呼叫這個方法,則具類型的值會序列化為文字。

對於非同步作業,請將此方法的傳回值轉換為字串,並使用 WriteStringAsync 方法。

適用於

WriteValue(Object)

寫入物件值。

public:
 virtual void WriteValue(System::Object ^ value);
public virtual void WriteValue (object value);
abstract member WriteValue : obj -> unit
override this.WriteValue : obj -> unit
Public Overridable Sub WriteValue (value As Object)

參數

value
Object

要寫入的物件值。

附註:使用 .NET Framework 3.5 的版本時,這個方法會接受 DateTimeOffset 作為參數。

例外狀況

指定了無效的值。

valuenull

寫入器的狀態為關閉或錯誤。

-或-

在先前的非同步作業完成前呼叫了 XmlWriter 方法。 在此情況下,會擲回 InvalidOperationException 與「非同步作業已經在進行中」的訊息。

備註

此方法會採用 Common Language Runtime (CLR) 物件,並使用 XML 架構定義語言 (XSD) 資料類型轉換規則,將輸入值轉換成所需的輸出類型。

如果 CLR 物件是清單類型,例如 IEnumerableIListICollection ,則會將它視為實值型別的陣列。 會 XmlWriter 根據 XML 架構 (XSD) 資料類型規則,將值轉換成其字串表示,並使用 方法將其寫出 WriteString

如果在輸出純文字的實例上 XmlWriter 呼叫這個方法,則具類型的值會序列化為文字。

針對非同步作業,請將這個方法的傳回值轉換為字串,並使用 WriteStringAsync 方法。

適用於

WriteValue(Int64)

寫入 Int64 值。

public:
 virtual void WriteValue(long value);
public virtual void WriteValue (long value);
abstract member WriteValue : int64 -> unit
override this.WriteValue : int64 -> unit
Public Overridable Sub WriteValue (value As Long)

參數

value
Int64

要寫入的 Int64 值。

例外狀況

指定了無效的值。

在先前的非同步作業完成前呼叫了 XmlWriter 方法。 在此情況下,會擲回 InvalidOperationException 與「非同步作業已經在進行中」的訊息。

備註

此方法會採用 Common Language Runtime 物件,並使用 XML 架構定義語言 (XSD) 資料類型轉換規則,將輸入值轉換成所需的輸出類型。

呼叫 WriteValue 方法時,XmlWriter 會根據 XML 結構描述 (XSD) 資料型別規則將值轉換成其字串表示,並使用 WriteString 方法將其寫出。

如果連續多次呼叫 WriteValue,則不會使用空格分隔各個值。 您必須在呼叫 WriteWhitespace 之間呼叫 WriteValue,以插入泛空白字元。 將陣列類型傳遞至多載, XmlWriter.WriteValue(Object) 以寫出相異值的陣列。

如果在輸出純文字的實例上 XmlWriter 呼叫這個方法,則具類型的值會序列化為文字。

針對非同步作業,請將這個方法的傳回值轉換為字串,並使用 WriteStringAsync 方法。

適用於

WriteValue(Int32)

寫入 Int32 值。

public:
 virtual void WriteValue(int value);
public virtual void WriteValue (int value);
abstract member WriteValue : int -> unit
override this.WriteValue : int -> unit
Public Overridable Sub WriteValue (value As Integer)

參數

value
Int32

要寫入的 Int32 值。

例外狀況

指定了無效的值。

在先前的非同步作業完成前呼叫了 XmlWriter 方法。 在此情況下,會擲回 InvalidOperationException 與「非同步作業已經在進行中」的訊息。

備註

此方法會採用 Common Language Runtime 物件,並使用 XML 架構定義語言 (XSD) 資料類型轉換規則,將輸入值轉換成所需的輸出類型。

呼叫 WriteValue 方法時,XmlWriter 會根據 XML 結構描述 (XSD) 資料型別規則將值轉換成其字串表示,並使用 WriteString 方法將其寫出。

如果連續多次呼叫 WriteValue,則不會使用空格分隔各個值。 您必須在呼叫 WriteWhitespace 之間呼叫 WriteValue,以插入泛空白字元。 將陣列類型傳遞至多載, XmlWriter.WriteValue(Object) 以寫出相異值的陣列。

如果在輸出純文字的實例上 XmlWriter 呼叫這個方法,則具類型的值會序列化為文字。

針對非同步作業,請將這個方法的傳回值轉換為字串,並使用 WriteStringAsync 方法。

適用於

WriteValue(Double)

寫入 Double 值。

public:
 virtual void WriteValue(double value);
public virtual void WriteValue (double value);
abstract member WriteValue : double -> unit
override this.WriteValue : double -> unit
Public Overridable Sub WriteValue (value As Double)

參數

value
Double

要寫入的 Double 值。

例外狀況

指定了無效的值。

在先前的非同步作業完成前呼叫了 XmlWriter 方法。 在此情況下,會擲回 InvalidOperationException 與「非同步作業已經在進行中」的訊息。

範例

下列範例會使用具型別的資料寫入書籍節點。

Double price = 9.95;
DateTime date = new DateTime(2004, 5, 20);

using (XmlWriter writer = XmlWriter.Create("data.xml"))
{
    writer.WriteStartElement("book");
    writer.WriteStartAttribute("pub-date");
    writer.WriteValue(date);
    writer.WriteEndAttribute();

    writer.WriteStartElement("price");
    writer.WriteValue(price);
    writer.WriteEndElement();

    writer.WriteEndElement();
    writer.Flush();
}
Dim price As [Double] = 9.95
Dim [date] As New DateTime(2004, 5, 20)
        
Using writer As XmlWriter = XmlWriter.Create("data.xml")
  writer.WriteStartElement("book")
  writer.WriteStartAttribute("pub-date")
  writer.WriteValue([date])
  writer.WriteEndAttribute()
            
  writer.WriteStartElement("price")
  writer.WriteValue(price)
  writer.WriteEndElement()
            
  writer.WriteEndElement()
  writer.Flush()
End Using

備註

此方法會採用 Common Language Runtime 物件,並使用 XML 架構定義語言 (XSD) 資料類型轉換規則,將輸入值轉換成所需的輸出類型。

呼叫 WriteValue 方法時,XmlWriter 會根據 XML 結構描述 (XSD) 資料型別規則將值轉換成其字串表示,並使用 WriteString 方法將其寫出。

如果連續多次呼叫 WriteValue,則不會使用空格分隔各個值。 您必須在呼叫 WriteWhitespace 之間呼叫 WriteValue,以插入泛空白字元。 將陣列類型傳遞至多載, XmlWriter.WriteValue(Object) 以寫出相異值的陣列。

如果在輸出純文字的實例上 XmlWriter 呼叫這個方法,則具類型的值會序列化為文字。

針對非同步作業,請將這個方法的傳回值轉換為字串,並使用 WriteStringAsync 方法。

適用於

WriteValue(String)

寫入 String 值。

public:
 virtual void WriteValue(System::String ^ value);
public virtual void WriteValue (string value);
public virtual void WriteValue (string? value);
abstract member WriteValue : string -> unit
override this.WriteValue : string -> unit
Public Overridable Sub WriteValue (value As String)

參數

value
String

要寫入的 String 值。

例外狀況

指定了無效的值。

在先前的非同步作業完成前呼叫了 XmlWriter 方法。 在此情況下,會擲回 InvalidOperationException 與「非同步作業已經在進行中」的訊息。

備註

此方法會採用 Common Language Runtime 物件,並使用 XML 架構定義語言 (XSD) 資料類型轉換規則,將輸入值轉換成所需的輸出類型。

如果連續多次呼叫 WriteValue,則不會使用空格分隔各個值。 您必須在呼叫 WriteWhitespace 之間呼叫 WriteValue,以插入泛空白字元。 將陣列類型傳遞至多載, XmlWriter.WriteValue(Object) 以寫出相異值的陣列。

如果在輸出僅限文字的實例上 XmlWriter 呼叫這個方法,則具類型的值會序列化為文字。

針對非同步作業,請使用 WriteStringAsync 方法。

適用於

WriteValue(DateTimeOffset)

寫入 DateTimeOffset 值。

public:
 virtual void WriteValue(DateTimeOffset value);
public virtual void WriteValue (DateTimeOffset value);
abstract member WriteValue : DateTimeOffset -> unit
override this.WriteValue : DateTimeOffset -> unit
Public Overridable Sub WriteValue (value As DateTimeOffset)

參數

value
DateTimeOffset

要寫入的 DateTimeOffset 值。

例外狀況

在先前的非同步作業完成前呼叫了 XmlWriter 方法。 在此情況下,會擲回 InvalidOperationException 與「非同步作業已經在進行中」的訊息。

備註

針對非同步作業,請將這個方法的傳回值轉換為字串,並使用 WriteStringAsync 方法。

適用於

WriteValue(DateTime)

寫入 DateTime 值。

public:
 virtual void WriteValue(DateTime value);
public virtual void WriteValue (DateTime value);
abstract member WriteValue : DateTime -> unit
override this.WriteValue : DateTime -> unit
Public Overridable Sub WriteValue (value As DateTime)

參數

value
DateTime

要寫入的 DateTime 值。

例外狀況

指定了無效的值。

在先前的非同步作業完成前呼叫了 XmlWriter 方法。 在此情況下,會擲回 InvalidOperationException 與「非同步作業已經在進行中」的訊息。

範例

下列範例會使用具型別的資料寫入書籍節點。

Double price = 9.95;
DateTime date = new DateTime(2004, 5, 20);

using (XmlWriter writer = XmlWriter.Create("data.xml"))
{
    writer.WriteStartElement("book");
    writer.WriteStartAttribute("pub-date");
    writer.WriteValue(date);
    writer.WriteEndAttribute();

    writer.WriteStartElement("price");
    writer.WriteValue(price);
    writer.WriteEndElement();

    writer.WriteEndElement();
    writer.Flush();
}
Dim price As [Double] = 9.95
Dim [date] As New DateTime(2004, 5, 20)
        
Using writer As XmlWriter = XmlWriter.Create("data.xml")
  writer.WriteStartElement("book")
  writer.WriteStartAttribute("pub-date")
  writer.WriteValue([date])
  writer.WriteEndAttribute()
            
  writer.WriteStartElement("price")
  writer.WriteValue(price)
  writer.WriteEndElement()
            
  writer.WriteEndElement()
  writer.Flush()
End Using

備註

此方法會採用 Common Language Runtime 物件,並使用 XML 架構定義語言 (XSD) 資料類型轉換規則,將輸入值轉換成所需的輸出類型。

呼叫 WriteValue 方法時,XmlWriter 會根據 XML 結構描述 (XSD) 資料型別規則將值轉換成其字串表示,並使用 WriteString 方法將其寫出。

如果連續多次呼叫 WriteValue,則不會使用空格分隔各個值。 您必須在呼叫 WriteWhitespace 之間呼叫 WriteValue,以插入泛空白字元。 將陣列類型傳遞至多載, XmlWriter.WriteValue(Object) 以寫出相異值的陣列。

如果在輸出純文字的實例上 XmlWriter 呼叫這個方法,則具類型的值會序列化為文字。

針對非同步作業,請將這個方法的傳回值轉換為字串,並使用 WriteStringAsync 方法。

適用於

WriteValue(Boolean)

寫入 Boolean 值。

public:
 virtual void WriteValue(bool value);
public virtual void WriteValue (bool value);
abstract member WriteValue : bool -> unit
override this.WriteValue : bool -> unit
Public Overridable Sub WriteValue (value As Boolean)

參數

value
Boolean

要寫入的 Boolean 值。

例外狀況

指定了無效的值。

在先前的非同步作業完成前呼叫了 XmlWriter 方法。 在此情況下,會擲回 InvalidOperationException 與「非同步作業已經在進行中」的訊息。

備註

此方法會採用 Common Language Runtime 物件,並使用 XML 架構定義語言 (XSD) 資料類型轉換規則,將輸入值轉換成所需的輸出類型。

呼叫 WriteValue 方法時,XmlWriter 會根據 XML 結構描述 (XSD) 資料型別規則將值轉換成其字串表示,並使用 WriteString 方法將其寫出。

如果連續多次呼叫 WriteValue,則不會使用空格分隔各個值。 您必須在呼叫 WriteWhitespace 之間呼叫 WriteValue,以插入泛空白字元。 將陣列類型傳遞至多載, XmlWriter.WriteValue(Object) 以寫出相異值的陣列。

如果在輸出純文字的實例上 XmlWriter 呼叫這個方法,則具類型的值會序列化為文字。

針對非同步作業,請將這個方法的傳回值轉換為字串,並使用 WriteStringAsync 方法。

適用於

WriteValue(Decimal)

寫入 Decimal 值。

public:
 virtual void WriteValue(System::Decimal value);
public virtual void WriteValue (decimal value);
abstract member WriteValue : decimal -> unit
override this.WriteValue : decimal -> unit
Public Overridable Sub WriteValue (value As Decimal)

參數

value
Decimal

要寫入的 Decimal 值。

例外狀況

指定了無效的值。

在先前的非同步作業完成前呼叫了 XmlWriter 方法。 在此情況下,會擲回 InvalidOperationException 與「非同步作業已經在進行中」的訊息。

備註

此方法會採用 Common Language Runtime 物件,並使用 XML 架構定義語言 (XSD) 資料類型轉換規則,將輸入值轉換成所需的輸出類型。

呼叫 WriteValue 方法時,XmlWriter 會根據 XML 結構描述 (XSD) 資料型別規則將值轉換成其字串表示,並使用 WriteString 方法將其寫出。

如果連續多次呼叫 WriteValue,則不會使用空格分隔各個值。 您必須在呼叫 WriteWhitespace 之間呼叫 WriteValue,以插入泛空白字元。 將陣列類型傳遞至多載, XmlWriter.WriteValue(Object) 以寫出相異值的陣列。

如果在輸出純文字的實例上 XmlWriter 呼叫這個方法,則具類型的值會序列化為文字。

針對非同步作業,請將這個方法的傳回值轉換為字串,並使用 WriteStringAsync 方法。

適用於