本文為機器翻譯文章。如需檢視英文版,請選取 [原文] 核取方塊。您也可以將滑鼠指標移到文字上,即可在快顯視窗顯示英文原文。
譯文
原文

XmlWriter 類別

 

表示寫入器,其可提供快速、非快取的順向方法來產生含有 XML 資料之資料流或檔案。

命名空間:   System.Xml
組件:  System.Xml (於 System.Xml.dll)


public abstract class XmlWriter : IDisposable

名稱描述
System_CAPS_protmethodXmlWriter()

初始化 XmlWriter 類別的新執行個體。

名稱描述
System_CAPS_pubpropertySettings

取得 XmlWriterSettings 物件,用於建立這個 XmlWriter 執行個體。

System_CAPS_pubpropertyWriteState

在衍生類別中覆寫時,取得寫入器的狀態。

System_CAPS_pubpropertyXmlLang

當在衍生類別中覆寫時,取得目前 xml:lang 範圍。

System_CAPS_pubpropertyXmlSpace

當在衍生類別中覆寫時,取得 XmlSpace 表示目前 xml:space 範圍。

名稱描述
System_CAPS_pubmethodClose()

在衍生類別中覆寫時,關閉這個資料流和基礎資料流。

System_CAPS_pubmethodSystem_CAPS_staticCreate(Stream)

建立新 XmlWriter 執行個體使用指定的資料流。

System_CAPS_pubmethodSystem_CAPS_staticCreate(Stream, XmlWriterSettings)

建立新 XmlWriter 執行個體使用的資料流和 XmlWriterSettings 物件。

System_CAPS_pubmethodSystem_CAPS_staticCreate(String)

建立新 XmlWriter 執行個體使用指定的檔名。

System_CAPS_pubmethodSystem_CAPS_staticCreate(String, XmlWriterSettings)

建立新 XmlWriter 執行個體使用檔名和 XmlWriterSettings 物件。

System_CAPS_pubmethodSystem_CAPS_staticCreate(StringBuilder)

建立新 XmlWriter 執行個體使用指定 StringBuilder

System_CAPS_pubmethodSystem_CAPS_staticCreate(StringBuilder, XmlWriterSettings)

建立新 XmlWriter 執行個體使用 StringBuilderXmlWriterSettings 物件。

System_CAPS_pubmethodSystem_CAPS_staticCreate(TextWriter)

建立新 XmlWriter 執行個體使用指定 TextWriter

System_CAPS_pubmethodSystem_CAPS_staticCreate(TextWriter, XmlWriterSettings)

建立新 XmlWriter 執行個體使用 TextWriterXmlWriterSettings 物件。

System_CAPS_pubmethodSystem_CAPS_staticCreate(XmlWriter)

建立新 XmlWriter 執行個體使用指定 XmlWriter 物件。

System_CAPS_pubmethodSystem_CAPS_staticCreate(XmlWriter, XmlWriterSettings)

建立新 XmlWriter 執行個體使用指定 XmlWriterXmlWriterSettings 物件。

System_CAPS_pubmethodDispose()

釋放 XmlWriter 類別目前的執行個體所使用的全部資源。

System_CAPS_protmethodDispose(Boolean)

釋放 XmlWriter 所使用的 Unmanaged 資源,並選擇性地釋放 Managed 資源。

System_CAPS_pubmethodEquals(Object)

判斷指定的物件是否等於目前的物件。(繼承自 Object。)

System_CAPS_protmethodFinalize()

在記憶體回收開始前,允許物件嘗試釋放資源,並執行其他清除作業。(繼承自 Object。)

System_CAPS_pubmethodFlush()

在衍生類別中覆寫時,將緩衝區的所有內容清空至基礎資料流,然後清空基礎資料流。

System_CAPS_pubmethodFlushAsync()

以非同步的方式將緩衝區的所有內容清空至基礎資料流,然後清空基礎資料流。

System_CAPS_pubmethodGetHashCode()

做為預設雜湊函式。(繼承自 Object。)

System_CAPS_pubmethodGetType()

取得目前執行個體的 Type(繼承自 Object。)

System_CAPS_pubmethodLookupPrefix(String)

在衍生類別中覆寫時,傳回最接近命名空間 URI 在目前命名空間範圍中定義的前置詞。

System_CAPS_protmethodMemberwiseClone()

建立目前 Object 的淺層複製。(繼承自 Object。)

System_CAPS_pubmethodToString()

傳回代表目前物件的字串。(繼承自 Object。)

System_CAPS_pubmethodWriteAttributes(XmlReader, Boolean)

當在衍生類別中覆寫時,寫出在目前的位置中找到的所有屬性 XmlReader

System_CAPS_pubmethodWriteAttributesAsync(XmlReader, Boolean)

以非同步方式寫出在目前的位置中找到的所有屬性 XmlReader

System_CAPS_pubmethodWriteAttributeString(String, String)

在衍生類別中覆寫時,寫出具有指定的區域名稱與數值的屬性。

System_CAPS_pubmethodWriteAttributeString(String, String, String)

在衍生類別中覆寫時,寫入具有指定區域名稱、命名空間 URI 和值的屬性。

System_CAPS_pubmethodWriteAttributeString(String, String, String, String)

在衍生類別中覆寫時,寫出具有指定的前置詞、區域名稱、命名空間 URI 及其值的屬性。

System_CAPS_pubmethodWriteAttributeStringAsync(String, String, String, String)

以非同步的方式寫出具有指定之前置詞、區域名稱、命名空間 URI 和值的屬性。

System_CAPS_pubmethodWriteBase64(Byte[], Int32, Int32)

在衍生類別中覆寫時,以 Base64 格式編碼指定的二進位位元組,並寫出產生的文字。

System_CAPS_pubmethodWriteBase64Async(Byte[], Int32, Int32)

以非同步的方式將指定的二進位位元組編碼為 base64 並寫出產生的文字。

System_CAPS_pubmethodWriteBinHex(Byte[], Int32, Int32)

當在衍生類別中覆寫時,會編碼為指定的二進位位元組 BinHex 並寫出產生的文字。

System_CAPS_pubmethodWriteBinHexAsync(Byte[], Int32, Int32)

以非同步方式將做為指定的二進位位元組編碼 BinHex 並寫出產生的文字。

System_CAPS_pubmethodWriteCData(String)

在衍生類別中覆寫時,寫出包含指定文字的 <![CDATA[...]]> 區塊。

System_CAPS_pubmethodWriteCDataAsync(String)

以非同步的方式寫出包含指定文字的 <![CDATA[...]]> 區塊。

System_CAPS_pubmethodWriteCharEntity(Char)

在衍生類別中覆寫時,強制產生指定之 Unicode 字元值的字元實體。

System_CAPS_pubmethodWriteCharEntityAsync(Char)

以非同步的方式強制產生指定的 Unicode 字元值的字元實體。

System_CAPS_pubmethodWriteChars(Char[], Int32, Int32)

在衍生類別中覆寫時,一次將文字寫入一個緩衝區。

System_CAPS_pubmethodWriteCharsAsync(Char[], Int32, Int32)

以非同步的方式一次將文字寫入一個緩衝區。

System_CAPS_pubmethodWriteComment(String)

在衍生類別中覆寫時,寫出包含指定文字的註解 <!--...-->。

System_CAPS_pubmethodWriteCommentAsync(String)

以非同步的方式寫出包含指定之文字的註解 <!--...-->。

System_CAPS_pubmethodWriteDocType(String, String, String, String)

在衍生類別中覆寫時,寫入具有指定名稱與選擇性屬性的 DOCTYPE 宣告。

System_CAPS_pubmethodWriteDocTypeAsync(String, String, String, String)

以非同步的方式寫入具有指定名稱與選擇性屬性的 DOCTYPE 宣告。

System_CAPS_pubmethodWriteElementString(String, String)

寫入具有指定之區域名稱和值的項目。

System_CAPS_pubmethodWriteElementString(String, String, String)

寫入具有指定之區域名稱、命名空間 URI 和值的項目。

System_CAPS_pubmethodWriteElementString(String, String, String, String)

寫入具有指定的前置詞、區域名稱、命名空間 URI 和值的項目。

System_CAPS_pubmethodWriteElementStringAsync(String, String, String, String)

以非同步的方式寫入具有指定之前置詞、區域名稱、命名空間 URI 和值的項目。

System_CAPS_pubmethodWriteEndAttribute()

當在衍生類別中覆寫時,便會關閉先前 WriteStartAttribute 呼叫。

System_CAPS_protmethodWriteEndAttributeAsync()

以非同步方式關閉上一個 WriteStartAttribute 呼叫。

System_CAPS_pubmethodWriteEndDocument()

在衍生類別中覆寫時,關閉任何開啟的項目或屬性,並將寫入器回復開始狀態。

System_CAPS_pubmethodWriteEndDocumentAsync()

以非同步的方式關閉任何開啟的項目或屬性,並將寫入器回復開始狀態。

System_CAPS_pubmethodWriteEndElement()

在衍生類別中覆寫時,關閉一個項目並取出對應的命名空間範圍。

System_CAPS_pubmethodWriteEndElementAsync()

以非同步的方式關閉一個項目並取出對應的命名空間範圍。

System_CAPS_pubmethodWriteEntityRef(String)

當在衍生類別中覆寫時,寫出做為實體參考 &name;

System_CAPS_pubmethodWriteEntityRefAsync(String)

以非同步方式寫出做為實體參考 &name;

System_CAPS_pubmethodWriteFullEndElement()

在衍生類別中覆寫時,關閉一個項目並取出對應的命名空間範圍。

System_CAPS_pubmethodWriteFullEndElementAsync()

以非同步的方式關閉一個項目並取出對應的命名空間範圍。

System_CAPS_pubmethodWriteName(String)

在衍生類別中覆寫時,寫出指定的名稱,根據 W3C XML 1.0 Recommendation (http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name) 確定它是有效名稱。

System_CAPS_pubmethodWriteNameAsync(String)

以非同步的方式寫出指定的名稱,根據 W3C XML 1.0 Recommendation (http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name) 確定它是有效名稱。

System_CAPS_pubmethodWriteNmToken(String)

在衍生類別中覆寫時,寫出指定的名稱,根據 W3C XML 1.0 Recommendation (http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name) 確定它是有效的 NmToken。

System_CAPS_pubmethodWriteNmTokenAsync(String)

以非同步的方式寫出指定的名稱,根據 W3C XML 1.0 Recommendation (http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name) 確定它是有效的 NmToken。

System_CAPS_pubmethodWriteNode(XmlReader, Boolean)

在衍生類別中覆寫時,從讀取器複製所有內容至寫入器,並將讀取器移至下一個同層級 (Sibling) 的開頭。

System_CAPS_pubmethodWriteNode(XPathNavigator, Boolean)

從所有項目複製 XPathNavigator 至寫入器物件。 位置 XPathNavigator 維持不變。

System_CAPS_pubmethodWriteNodeAsync(XmlReader, Boolean)

以非同步的方式從讀取器複製所有內容至寫入器,並將讀取器移至下一個同層級 (Sibling) 的開頭。

System_CAPS_pubmethodWriteNodeAsync(XPathNavigator, Boolean)

以非同步方式複製從 XPathNavigator 至寫入器物件。 位置 XPathNavigator 維持不變。

System_CAPS_pubmethodWriteProcessingInstruction(String, String)

當在衍生類別中覆寫時,寫出名稱與文字之間有空白的處理指示,如下所示︰ <? 命名文字? >。

System_CAPS_pubmethodWriteProcessingInstructionAsync(String, String)

以非同步方式寫出名稱與文字之間有空白的處理指示,如下所示︰ <? name text? >。

System_CAPS_pubmethodWriteQualifiedName(String, String)

在衍生類別中覆寫時,寫出命名空間限定名稱。 這個方法會查詢在指定之命名空間範圍中的前置詞。

System_CAPS_pubmethodWriteQualifiedNameAsync(String, String)

以非同步的方式寫出命名空間限定名稱。 這個方法會查詢在指定之命名空間範圍中的前置詞。

System_CAPS_pubmethodWriteRaw(Char[], Int32, Int32)

在衍生類別中覆寫時,從字元緩衝區手動寫入未經處理的標記。

System_CAPS_pubmethodWriteRaw(String)

在衍生類別中覆寫時,從字串手動寫入未經處理的標記 (Raw Markup)。

System_CAPS_pubmethodWriteRawAsync(Char[], Int32, Int32)

以非同步的方式從字元緩衝區手動寫入未經處理的標記。

System_CAPS_pubmethodWriteRawAsync(String)

以非同步的方式從字串手動寫入未經處理的標記 (Raw Markup)。

System_CAPS_pubmethodWriteStartAttribute(String)

寫入具有指定之區域名稱的屬性開頭。

System_CAPS_pubmethodWriteStartAttribute(String, String)

寫入具有指定之區域名稱和命名空間 URI 之屬性的開頭。

System_CAPS_pubmethodWriteStartAttribute(String, String, String)

在衍生類別中覆寫時,寫入具有指定的前置詞、區域名稱和命名空間 URI 之屬性的開頭。

System_CAPS_protmethodWriteStartAttributeAsync(String, String, String)

以非同步的方式寫入具有指定之前置詞、本機名稱和命名空間 URI 之屬性的開頭。

System_CAPS_pubmethodWriteStartDocument()

在衍生類別中覆寫時,使用「1.0」版寫入 XML 宣告。

System_CAPS_pubmethodWriteStartDocument(Boolean)

在衍生類別中覆寫時,使用「1.0」版寫入 XML 宣告與獨立屬性。

System_CAPS_pubmethodWriteStartDocumentAsync()

以非同步的方式使用「1.0」版寫入 XML 宣告。

System_CAPS_pubmethodWriteStartDocumentAsync(Boolean)

以非同步的方式使用「1.0」版寫入 XML 宣告與獨立屬性。

System_CAPS_pubmethodWriteStartElement(String)

在衍生類別中覆寫時,寫出具有指定之區域名稱的開頭標記。

System_CAPS_pubmethodWriteStartElement(String, String)

在衍生類別中覆寫時,寫入指定的開頭標記並與指定的命名空間產生關聯。

System_CAPS_pubmethodWriteStartElement(String, String, String)

在衍生類別中覆寫時,寫入指定的開頭標記,並與指定的命名空間與前置詞產生關聯。

System_CAPS_pubmethodWriteStartElementAsync(String, String, String)

以非同步的方式寫入指定的開頭標記,並將它與指定的命名空間與前置詞產生關聯。

System_CAPS_pubmethodWriteString(String)

在衍生類別中覆寫時,寫入指定的文字內容。

System_CAPS_pubmethodWriteStringAsync(String)

以非同步的方式寫入指定的文字內容。

System_CAPS_pubmethodWriteSurrogateCharEntity(Char, Char)

在衍生類別中覆寫時,產生和寫入 Surrogate 字元字組的 Surrogate 字元實體。

System_CAPS_pubmethodWriteSurrogateCharEntityAsync(Char, Char)

以非同步的方式產生和寫入 Surrogate 字元字組的 Surrogate 字元實體。

System_CAPS_pubmethodWriteValue(Boolean)

寫入 Boolean 值。

System_CAPS_pubmethodWriteValue(DateTime)

寫入 DateTime 值。

System_CAPS_pubmethodWriteValue(DateTimeOffset)

寫入 DateTimeOffset 值。

System_CAPS_pubmethodWriteValue(Decimal)

寫入 Decimal 值。

System_CAPS_pubmethodWriteValue(Double)

寫入 Double 值。

System_CAPS_pubmethodWriteValue(Int32)

寫入 Int32 值。

System_CAPS_pubmethodWriteValue(Int64)

寫入 Int64 值。

System_CAPS_pubmethodWriteValue(Object)

寫入物件值。

System_CAPS_pubmethodWriteValue(Single)

寫入單精確度浮點數。

System_CAPS_pubmethodWriteValue(String)

寫入 String 值。

System_CAPS_pubmethodWriteWhitespace(String)

在衍生類別中覆寫時,寫出指定的空白字元。

System_CAPS_pubmethodWriteWhitespaceAsync(String)

以非同步的方式寫出指定的空白字元。

XmlWriter 類別會將 XML 資料寫入資料流、 檔案、 文字讀取器或字串。 它支援 W3C Extensible Markup Language (XML) 1.0 (fourth edition)Namespaces in XML 1.0 (third edition) 建議。

成員 XmlWriter 類別可讓您︰

  • 驗證字元是否為合法 XML 字元,以及項目與屬性名稱是否為有效的 XML 名稱。

  • 驗證 XML 文件的格式是否正確。

  • 將二進位資料編碼為 Base64 或 BinHex,並寫出產生的文字。

  • 將值傳遞,不必以手動方式執行值的轉換,而不是字串,使用 common language runtime 類型。

  • 將多份文件寫至一個輸出資料流。

  • 寫入有效的名稱、限定名稱,以及名稱語彙基元。

本節內容:

建立 XML 寫入器
指定輸出格式
資料一致性
寫入項目
寫入屬性
處理命名空間
寫入具型別資料
關閉的 XML 寫入器
非同步程式設計
安全性考量

若要建立 XmlWriter 執行個體,使用 XmlWriter.Create 方法。 若要指定您想要的 XML 寫入器上啟用的功能,請將傳遞 XmlWriterSettingsCreate 方法。 否則,會使用預設設定。 請參閱 Create 參考頁面的詳細資料。

XmlWriterSettings 類別包含數個屬性,控制如何 XmlWriter 格式化輸出︰

屬性

描述

Encoding

指定要使用的文字編碼方式。 預設為 Encoding.UTF8

Indent

表示是否縮排項目。 預設值是 false (不縮排)。

IndentChars

指定縮排時要使用的字元字串。 預設值為兩個空格。

NewLineChars

指定用於分行符號的字元字串。 預設值為 \r\n (歸位字元、換行字元)。

NewLineHandling

指定如何處理新行字元。

NewLineOnAttributes

表示是否要在新行上寫入屬性。 使用此屬性時,應將 Indent 設為 true 預設為 false

OmitXmlDeclaration

表示是否撰寫 XML 宣告。 預設為 false

IndentIndentChars 屬性控制如何格式化非顯著泛空白字元。 例如,若要縮排項目節點︰

XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = "\t";
XmlWriter writer = XmlWriter.Create("books.xml", settings);

使用 NewLineOnAttributes 在一行的縮排一個額外的層級上寫入每個屬性︰

XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.NewLineOnAttributes = true;
XmlWriter writer = XmlWriter.Create("books.xml", settings);

XML 寫入器會使用兩個屬性,從 XmlWriterSettings 類別來檢查資料一致性︰

  • CheckCharacters 屬性會指示 XML 寫入器檢查字元,並擲回 XmlException 如果任何字元超出合法的範圍,如 W3C 所定義的例外狀況。

  • ConformanceLevel 屬性會設定檢查正在寫入的資料流符合格式正確的 XML 1.0 文件或文件片段的規則與 W3C 所定義的 XML 寫入器。 下表描述三個一致性層級。 預設為 Document 如需詳細資訊,請參閱 XmlWriterSettings.ConformanceLevel 屬性和 System.Xml.ConformanceLevel 列舉型別。

    層級

    描述

    Document

    XML 輸出符合格式正確的 XML 1.0 文件的規則,而且可以處理任何符合的處理器。

    Fragment

    XML 輸出符合格式正確的 XML 1.0 文件片段的規則。

    Auto

    XML 寫入器會決定確認檢查,以套用 (文件或片段) 根據內送資料的層級。

您可以使用下列 XmlWriter 方法來寫入項目節點。 如需範例,請參閱所列的方法。

用法

WriteElementString

寫入整個項目節點,包括字串值。

WriteStartElement

若要使用多個方法呼叫,以寫入項目值。 例如,您可以呼叫 WriteValue 寫入具型別值、呼叫 WriteCharEntity 寫入字元實體、呼叫 WriteAttributeString 寫入屬性,或者可以寫入項目子系。 這是更複雜的版本 WriteElementString 方法。

若要關閉項目,請呼叫 WriteEndElementWriteFullEndElement 方法。

WriteNode

若要複製項目節點的目前位置找到 XmlReaderXPathNavigator 物件。 呼叫此方法時,它會將來源物件中的所有內容複製到 XmlWriter 執行個體。

您可以使用下列 XmlWriter 方法來寫入項目節點上的屬性。 這些方法也可用來建立命名空間宣告的項目下, 一節中所述。

用法

WriteAttributeString

若要寫入整個屬性節點,包括字串值。

WriteStartAttribute

若要撰寫使用多個方法呼叫的屬性值。 例如,您可以呼叫 WriteValue 寫入具型別的的值。 這是更複雜的版本 WriteElementString 方法。

若要關閉項目,請呼叫 WriteEndAttribute 方法。

WriteAttributes

若要複製的目前位置找到的所有屬性 XmlReader 物件。 寫入的屬性取決於讀取器目前所在的節點的類型︰

  • 屬性節點,它會將目前的屬性,然後其餘屬性直到項目結尾標記。

  • 項目節點,它會將項目所包含的所有屬性。

  • XML 宣告節點,它會將所有屬性宣告中。

  • 對於所有其他節點類型,方法會擲回例外狀況。

命名空間用於對 XML 文件中的項目與屬性名稱進行限定。 命名空間前置詞產生關聯項目和屬性命名空間,依序相關聯的 URI 參考。 命名空間會在 XML 文件中建立項目和屬性名稱唯一性。

XmlWriter 會維持對應至目前的命名空間範圍中定義的所有命名空間的命名空間堆疊。 當寫入項目及屬性時,可透過下列方式利用命名空間:

  • 使用手動宣告命名空間 WriteAttributeString 方法。 當知道如何最佳化命名空間宣告數目時,這便會很有用。 如需範例,請參閱 WriteAttributeString(String, String, String, String) 方法。

  • 使用新的命名空間覆寫目前的命名空間宣告。 下列程式碼, WriteAttributeString 方法會變更命名空間 URI 的 "x" 前置詞與 "123""abc"

    writer.WriteStartElement("x", "root", "123");
    writer.WriteStartElement("item");
    writer.WriteAttributeString("xmlns", "x", null, "abc");
    writer.WriteEndElement();
    writer.WriteEndElement();
    

    程式碼會產生下列 XML 字串:

    <x:root xmlns:x="123">
      <item xmlns:x="abc" />
    </x:root>
    
  • 寫入屬性或項目時,指定命名空間前置詞。 許多用來寫入項目和屬性的方法可讓您執行這項操作。 例如, WriteStartElement(String, String, String) 方法寫入的開頭標記,並將它與指定的命名空間與前置詞產生關聯。

WriteValue 方法會接受的 common language runtime (CLR) 物件、 將輸入的值轉換為其字串表示,根據 XML 結構描述定義語言 (XSD) 資料型別轉換規則,並使用外寫入 WriteString 方法。 這是比使用中的方法更容易 XmlConvert 類別,以寫出之前將具型別的資料轉換成字串值。

當寫入的文字,具型別的值序列化為文字使用 XmlConvert 該結構描述類型的規則。

預設 XSD 資料型別會對應至 CLR 型別,請參閱 WriteValue 方法。

XmlWriter 也可用來寫入 XML 資料存放區。 例如,XPathNavigator 類別可以建立 XmlWriter 物件,以建立 XmlDocument 物件的節點。 如果資料存放區的結構描述資訊可用, WriteValue 方法擲回例外狀況,如果您嘗試轉換成不允許的類型。如果資料存放區並沒有結構描述資訊提供給它, WriteValue 方法會將所有值視為 xsd:anySimpleType 型別。

當您使用 XmlWriter 輸出 XML 的元素和屬性的方法不會寫入,直到您呼叫 Close 方法。 例如,如果您使用 XmlWriter 來填入 XmlDocument 物件時,您將無法看到寫入項目和屬性的目標文件中,直到您關閉 XmlWriter 執行個體。

大部分的 XmlWriter 方法有非同步"Async"結尾的方法名稱的對應項目。 例如,非同步相當於 WriteAttributeStringWriteAttributeStringAsync

WriteValue 方法,它不會有非同步的對應項目,傳回的值轉換成字串並使用 WriteStringAsync 方法改為。

使用時,請考慮下列 XmlWriter 類別︰

  • 擲回例外狀況 XmlWriter 可能會洩露您不想要的路徑資訊反昇至應用程式。 您的應用程式必須捕捉例外狀況並予以適當處理。

  • XmlWriter 不會驗證傳遞至任何資料 WriteDocTypeWriteRaw 方法。 您不應將任意資料傳遞給這些方法。

下列程式碼範例示範如何使用非同步 API 來產生 XML。

async Task TestWriter(Stream stream) 
{
    XmlWriterSettings settings = new XmlWriterSettings();
    settings.Async = true;

    using (XmlWriter writer = XmlWriter.Create(stream, settings)) {
        await writer.WriteStartElementAsync("pf", "root", "http://ns");
        await writer.WriteStartElementAsync(null, "sub", null);
        await writer.WriteAttributeStringAsync(null, "att", null, "val");
        await writer.WriteStringAsync("text");
        await writer.WriteEndElementAsync();
        await writer.WriteProcessingInstructionAsync("pName", "pValue");
        await writer.WriteCommentAsync("cValue");
        await writer.WriteCDataAsync("cdata value");
        await writer.WriteEndElementAsync();
        await writer.FlushAsync();
    }
}

通用 Windows 平台
自 8 起供應
.NET Framework
自 1.1 起供應
可攜式類別庫
提供支援︰ 可攜式 .NET 平台
Silverlight
自 2.0 起供應
Windows Phone Silverlight
自 7.0 起供應
Windows Phone
自 8.1 起供應

此類型的任何 public static (在 Visual Basic 中 共用 在 Visual Basic 中) 成員皆為安全執行緒。不保證任何執行個體成員為安全執行緒。

回到頁首
顯示: