XML (eXtensible Markup Language) 為 W3C 標準,廣泛用於資料交換、設定檔、文件標記。C# (.NET Framework) 內建豐富的 XML 處理類別 (`System.Xml`),本系列將系統介紹建立與讀取 XML 的多種方法。
執行環境
- Windows 2000 Server / XP / 7 / 10 / 11 / Server 2019+
- .NET Framework 1.1~4.8 / .NET Core 2.0+ / .NET 5+
- Visual Studio 2003~2022 / VS Code
C# 操作 XML 三大模型
| 模型 | 核心類別 | 特性 | 適用場景 |
| DOM (Document Object Model) | XmlDocument, XmlNode, XmlElement | 整份 XML 載入記憶體樹、隨機存取、支援修改 | 中小檔案 (< 20MB)、需頻繁查詢/修改 |
| 流式 / 唯讀 | XmlReader, XmlWriter | 順向單次讀寫、恆定記憶體、效能最高 | 大檔案、高效能、單向處理 |
| LINQ to XML | XDocument, XElement, XAttribute | 函數式建構、語法優雅、支援 LINQ 查詢、型別安全 | 現代專案首選、中小檔案、複雜查詢/轉換 |
DOM 建立 XML 基礎步驟 (XmlDocument)
- 建立空文件:`var doc = new XmlDocument();`
- 加入 XML 宣告:`var decl = doc.CreateXmlDeclaration("1.0", "utf-8", null); doc.AppendChild(decl);`
- 建立根元素:`var root = doc.CreateElement("Root"); doc.AppendChild(root);`
- 遞歸建立子元素/屬性/文字:`var child = doc.CreateElement("Child"); child.SetAttribute("id", "1"); child.InnerText = "Content"; root.AppendChild(child);`
- 儲存:`doc.Save("file.xml");` 或 `doc.Save(stream);`
關鍵類別速查
- `XmlDocument`:代表整份 XML 文件,提供 `Load`/`LoadXml`/`Save`/`Create*` 等方法。
- `XmlNode`:所有節點基類,含 `NodeType`、`Name`、`Value`、`ParentNode`、`ChildNodes`、`Attributes`。
- `XmlElement`:元素節點,繼承 `XmlNode`,額外提供 `SetAttribute`/`GetAttribute`/`InnerText`/`InnerXml`。
- `XmlText`:文字內容節點。
- `XmlAttribute`:屬性節點。
- `XmlDeclaration`:`` 宣告節點。
系列規劃
- 基礎概念與 DOM 建立入門 (本篇)
- CreateElement 逐節點建立法完整程式碼
- LoadXml 字串載入法詳解
- LoadXml 完整程式碼與三方法比較
- 讀取邏輯與 XmlNodeReader 詳解
- 完整讀取程式碼與總結
下一篇將展示完整的 `CreateElement` 逐節點建立主控台程式碼 (NO1.cs)。