接續上篇的基本操作,這篇主要使用 LINQ to XML 來修改 XML 資料。
目錄:
系列文完整範例程式碼請參考 poychang/Demo-Linq-To-Xml。
LINQ to XML 已經幫我們內建了新增、 修改、刪除所需要的方法,我們只要簡單的調用他們,就可以輕鬆完成修改 XML 資料的的目的。
新增 XML 資料
使用 Add() 可以在既有的 XML 資料中新增一筆元素資料,這筆資料會被加在 XML 資料中的最後面,另外也可使用 AddFirst() 將資料加在最前面,請見以下範例:
1 | xmlDocument.Element("Students")?.Add( |
如果想要將資料加在指定元素的前面或後面,可以使用 AddBeforeSelf() 或 AddAfterSelf() 將要新增的資料加在指定的序列位置,請見以下範例:
1 | xmlDocument.Element("Students")?.Elements("Student") |
修改 XML 資料
更新 XML 既有元素可先透過 LINQ 找到目標元素後,使用 SetElementValue() 或是 SetValue() 方法,修改該元素的值,請見以下範例:
1 | xmlDocument.Element("Students")?.Elements("Student") |
1 | xmlDocument.Element("Students")?.Elements("Student") |
上面兩段程式碼會是等價的,但查詢方式不同,所以調用不同的修改方法,第一種方式會先找到 Student 這個元素後,修改底下的指定的屬性值,第二種則是找到 Student 這個元素後,針對 TotalMarks 這個屬性去修改設定值。
刪除 XML 資料
刪除的動作相當簡單,請見以下範例:
1 | // 刪除篩選到的 XML 元素 |
這裡的 xmlDocument.Root 等價於 xmlDocument.Element("Students"),也就是整份 XML 文件的根結點。若是要表示 XML 文件的起始,建議使用 xmlDocument.Root 來操作會比較符合語意且直覺。
請參考
04-ModifyXmlDocument專案的 Program.cs
參考資料: