系列第五篇:詳細說明如何使用 `XmlDocument.Load` 載入 XML,並以 `XmlNodeReader` 逐節點讀取資料,配合 `ListView` 顯示。
var doc = new XmlDocument();
doc.Load(@"C:\data.xml"); // 或 Stream、Url、XmlReader
`XmlDocument` 將整份 XML 載入記憶體建立 DOM 樹,適合中小型檔案 (< 10-20 MB)。
using (var reader = new XmlNodeReader(doc))
{
// reader 實作 XmlReader,提供唯讀、順向、流式存取介面
}
`XmlNodeReader` 以 DOM 節點為底層資料源,但對外呈現 `XmlReader` 介面,可使用標準 `Read()`/`NodeType`/`Name`/`Value` 進行逐節點處理。
string currentElement = "";
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
currentElement = reader.Name; // 記錄目前元素名
break;
case XmlNodeType.Text:
// reader.Value 為文字內容
if (currentElement == "Name")
listView.Items.Add(reader.Value); // 新行
else
listView.Items[listView.Items.Count - 1].SubItems.Add(reader.Value); // 同行子項
break;
}
}
| 列舉值 | 意義 | 關鍵屬性 |
|---|---|---|
| Element | 開始標籤 ` | Name, Attributes |
| Text | 元素文字內容 | Value |
| EndElement | 結束標籤 `` | Name |
| Attribute | 屬性節點 | Name, Value |
| XmlDeclaration | `` | Version, Encoding |
| Comment | `` | Value |
| Whitespace / SignificantWhitespace | 格式化空白 | Value |
本範例 XML 結構為:
...
...
...
...
...
...
讀取時依序遇到 `
提供完整可編譯執行的 WinForms 專案程式碼 (含 UI 初始化、按鈕事件、錯誤處理),並總結 C# XML 程式設計全系列重點。