首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# 操作 XML 修改指定 Key 的 Value:XmlDocument 完整範例

     編輯:程式設計綜合問答

目標 XML 結構

<?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); // 覆寫儲存

關鍵 API 說明

  • 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);

注意事項

  • XML 檔案編碼需與宣告一致(UTF-8),XmlDocument 會自動處理。
  • 大型 XML 建議使用 XmlReader/XmlWriter 流式處理,避免記憶體壓力。
  • 修改前建議備份原檔,防止異常導致資料遺失。

總結

使用 XmlDocument 搭配 XPath 可輕鬆完成 XML 節點屬性的查詢與修改,程式碼簡潔且符合 .NET 慣用模式。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved