C#怎么操作XML文件 C# XmlDocument读写XML方法

来源:这里教程网 时间:2026-02-21 17:34:14 作者:

C# 操作 XML 文件最常用、最直接的方式就是用

XmlDocument
,它基于 DOM(文档对象模型),把整个 XML 加载到内存中,支持增删改查、遍历和保存,适合中小型 XML 文件(几 MB 以内)。下面讲清楚怎么读、怎么写、怎么改,不绕弯子。

加载和读取 XML 内容

Load()
LoadXml()
把 XML 载入内存,再用
SelectNodes()
/
SelectSingleNode()
配合 XPath 查找节点。

从文件加载:
doc.Load("config.xml");
从字符串加载:
doc.LoadXml("<root><item id="1">A</item></root>");
查所有 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
流式处理。

相关推荐