首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# XML 寫入完整指南:XmlTextWriter 核心方法與實戰範例

     編輯:關於C語言

為什麼用 XmlTextWriter?

  • 前向寫入、流式處理,記憶體效率高。
  • 自動處理逸出字元、編碼、縮排格式。
  • 支援寫入檔案、串流、TextWriter。

建構函式


// 寫入檔案(指定編碼)
var writer = new XmlTextWriter("output.xml", Encoding.UTF8);

// 寫入串流
var writer = new XmlTextWriter(memoryStream, Encoding.UTF8);

// 寫入 TextWriter
var writer = new XmlTextWriter(stringWriter);

核心方法速查

方法用途範例輸出
WriteStartDocument()寫入 XML 宣告
WriteEndDocument()關閉所有開啟元素-
WriteStartElement("name")開始元素
WriteEndElement()結束元素 或 />
WriteElementString("n", "v")寫入含值元素v
WriteStartAttribute("attr")開始屬性attr="
WriteEndAttribute()結束屬性"
WriteAttributeString("a", "v")寫入屬性a="v"
WriteCData("text")寫入 CDATA
WriteComment("text")寫入註解
WriteNode(reader, false)從 XmlReader 複製節點-
Flush()/Close()刷新/關閉-

實戰範例:產生唐詩 XML


using (var writer = new XmlTextWriter("TangPoems.xml", Encoding.UTF8))
{
    writer.Formatting = Formatting.Indented;
    writer.WriteStartDocument();
    writer.WriteStartElement("唐詩");

    writer.WriteStartElement("五言絕句");
    writer.WriteAttributeString("作者", "李白");
    writer.WriteAttributeString("字號", "太白");
    writer.WriteElementString("標題", "靜夜思");
    writer.WriteElementString("內容", "床前明月光,疑是地上霜。舉頭望明月,低頭思故鄉。");
    writer.WriteEndElement(); // 五言絕句

    // 更多詩句...
    writer.WriteEndElement(); // 唐詩
    writer.WriteEndDocument();
}

進階技巧

  • 命名空間:WriteStartElement("prefix", "local", "nsUri")。
  • Base64 編碼二進位:WriteBase64(byte[], offset, count) 可將圖片嵌入 XML。
  • 實體字元處理:屬性值含 &、< 等時,使用 WriteStartAttribute + WriteString + WriteCharEntity 組合寫入。

注意事項

  1. 一定要呼叫 Close() 或 Dispose(),否則輸出可能不完整。
  2. .NET Core / .NET 5+ 建議改用 XmlWriter.Create 工廠方法,提供更多設定選項(如 XmlWriterSettings)。
  3. XmlTextWriter 在新版標記為過時但仍可使用,內部實作相同。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved