<?xml version="1.0" encoding="utf-8"?>
<appSettings>
<appSetting key="張三" value="1" notes="..." />
<appSetting key="李四" value="0" notes="..." />
<appSetting key="王五" value="0" notes="..." />
</appSettings>
using System.Xml;
string path = "app.config"; // 或完整路徑
XmlDocument doc = new XmlDocument();
doc.Load(path);
XmlNodeList nodes = doc.SelectNodes("//appSetting[@key='李四']");
foreach (XmlNode node in nodes) {
XmlAttribute attr = node.Attributes["value"];
if (attr != null) {
attr.Value = "0"; // 修改為目標值
}
}
doc.Save(path); // 覆寫儲存
SelectNodes("//appSetting[@key='李四']"):XPath 精確定位所有 key="李四" 的節點。Attributes["value"]:直接存取屬性,避免逐一迴圈比對名稱。doc.Save():將記憶體中修改持久化至檔案。// 新增
XmlElement newElem = doc.CreateElement("appSetting");
newElem.SetAttribute("key", "趙六");
newElem.SetAttribute("value", "1");
newElem.SetAttribute("notes", "新增測試");
doc.DocumentElement.AppendChild(newElem);
// 刪除
XmlNode delNode = doc.SelectSingleNode("//appSetting[@key='張三']");
delNode?.ParentNode?.RemoveChild(delNode);
XmlDocument 會自動處理。XmlReader/XmlWriter 流式處理,避免記憶體壓力。使用 XmlDocument 搭配 XPath 可輕鬆完成 XML 節點屬性的查詢與修改,程式碼簡潔且符合 .NET 慣用模式。