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

月夜之吻
发布: 2025-12-18 12:23:55
原创
475人浏览过
C#操作XML最常用方式是XmlDocument类,基于DOM加载整个XML到内存,支持增删改查、遍历和保存,适合几MB以内中小型文件。

c#怎么操作xml文件 c# xmldocument读写xml方法

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

修改和删除已有节点

找到目标节点后,直接改 InnerTextAttributes,或调用 RemoveChild() / RemoveAll()

Fotor AI Image Upscaler
Fotor AI Image Upscaler

Fotor推出的AI图片放大工具

Fotor AI Image Upscaler 73
查看详情 Fotor AI Image Upscaler
  • 改文本: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 流式处理。

以上就是C#怎么操作XML文件 C# XmlDocument读写XML方法的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号