系列第四篇:展示使用 `XmlDocument.LoadXml` 直接從字串載入完整 XML 結構並儲存檔案的完整程式碼 (NO2.cs),比 `CreateElement` 逐節點建立更簡潔。
適用於:已知完整 XML 結構、需快速產生檔案、或從範本/資源載入 XML。
using System;
using System.Xml;
public class Sample
{
public static void Main()
{
var doc = new XmlDocument();
doc.LoadXml(
"" +
" " +
" Ma Jin Hu " +
" 239000 " +
" Feng Huang Street" +
" Chu Zhou City " +
" ANHUI " +
" " +
" " +
" Wang Tian " +
" 239000 " +
" Lang Ya Street" +
" He Fei City " +
" ANHUI " +
" " +
" " +
" Zou Wen Biao " +
" 100000 " +
" Sai Di Street" +
" Bei Jin City " +
" Bei Jin " +
" " +
" "
);
doc.Save("data.xml");
}
}
| 方法 | 優點 | 缺點 |
|---|---|---|
| CreateElement 逐節點 | 型別安全、IntelliSense、動態建構、避免字串拼接錯誤 | 程式碼冗長、效能稍低 (多次物件配置) |
| LoadXml 字串 | 簡潔、易讀、效能佳 (單次剖析)、易從資源/範本載入 | 字串拼接易出錯、無編譯期檢查、需自行確保 XML 格式正確 |
| LINQ to XML (XDocument) | 語法優雅、型別安全、支援 LINQ 查詢、建構與查詢一致 | .NET 3.5+、舊專案需引用額外組件 |
var xdoc = new XDocument(
new XElement("Guests",
new XElement("Guest",
new XElement("Name", "Ma Jin Hu"),
new XElement("Zip", "239000"),
new XElement("Address", "Feng Huang Street"),
new XElement("City", "Chu Zhou City"),
new XElement("State", "ANHUI")
),
// ... 其他 Guest
)
);
xdoc.Save("data.xml");
下一篇將進入讀取篇:使用 `XmlDocument.Load` + `XmlNodeReader` 解析上述產生的 `data.xml`。