C#操作XML最常用方式是XmlDocument类,基于DOM加载整个XML到内存,支持增删改查、遍历和保存,适合几MB以内中小型文件。

C# 操作 XML 文件最常用、最直接的方式就是用 XmlDocument 类,它基于 DOM(文档对象模型),把整个 XML 加载到内存中,支持增删改查、遍历和保存,适合中小型 XML 文件(几 MB 以内)。下面讲清楚怎么读、怎么写、怎么改,不绕弯子。
加载和读取 XML 内容
用 Load() 或 LoadXml() 把 XML 载入内存,再用 SelectNodes() / SelectSingleNode() 配合 XPath 查找节点。
- 从文件加载:
doc.Load("config.xml"); - 从字符串加载:
doc.LoadXml(" ");- A
- 查所有 item 元素:
var nodes = doc.SelectNodes("//item"); - 取第一个 item 的 id 属性:
string id = node.Attributes["id"]?.Value; - 取文本内容:
string text = node.InnerText.Trim();
创建和添加新节点
用 CreateElement()、CreateAttribute() 等方法生成节点,再用 AppendChild() 或 InsertBefore() 插入到目标位置。
- 新建元素:
XmlElement newItem = doc.CreateElement("item"); - 加属性:
newItem.SetAttribute("id", "3"); - 加文本子节点:
newItem.InnerText = "New Value"; - 插入到 root 下:
doc.DocumentElement?.AppendChild(newItem);
修改和删除已有节点
找到目标节点后,直接改 InnerText、Attributes,或调用 RemoveChild() / RemoveAll()。
- 改文本:
node.InnerText = "Updated"; - 改属性:
node.Attributes["id"].Value = "99"; - 删某个子节点:
parentNode.RemoveChild(targetNode); - 清空所有子节点:
node.RemoveAll();
保存回文件或字符串
改完别忘了保存。用 Save() 写入文件,用 OuterXml 获取字符串形式(含根节点),InnerXml 只取内部内容。
- 保存到文件:
doc.Save("config.xml"); - 获取完整 XML 字符串:
string xmlStr = doc.OuterXml; -
格式化输出(带缩进):先设置
doc.PreserveWhitespace = false;,再用XmlTextWriter或 .NET 6+ 的XmlWriter.Create(..., new XmlWriterSettings { Indent = true })
基本上就这些。注意:操作前建议加异常处理(比如文件不存在、XML 格式错误),多层嵌套时 XPath 写准一点,避免空引用。小项目够用,大文件建议换 XmlReader/XmlWriter 流式处理。










