C# XmlDocument类怎么用 XmlDocument加载和保存XML


XmlDocument 是 .NET 中基于 DOM 的 XML 操作类,支持从字符串、文件、URL 或 XmlReader 加载,可随机读写节点、XPath 查询,保存时需用 XmlWriter 设置缩进;注意内存占用、DTD 处理、命名空间及线程安全问题。

c# xmldocument类怎么用 xmldocument加载和保存xml

XmlDocument 是 .NET 中操作 XML 文档的核心类之一,属于 System.Xml 命名空间。它基于 DOM(文档对象模型),把整个 XML 加载到内存中,支持随机读写、节点增删改查、XPath 查询等。下面直接说怎么用它加载和保存 XML。

用 XmlDocument 加载 XML

有多种方式把 XML 数据加载进 XmlDocument 实例:

  • 从字符串加载:用 LoadXml(string xml) 方法,适合已知 XML 内容的场景。
  • 从文件加载:用 Load(string filename)Load(Stream),自动识别编码并解析文件。
  • 从 URL 加载:用 Load(string url)(需网络可访问,注意安全限制)。
  • 从 XmlReader 加载:用 Load(XmlReader),适合需要精细控制解析过程的情况(如跳过 DTD、设置验证选项)。

示例(从文件加载):

XmlDocument doc = new XmlDocument();
doc.Load("config.xml"); // 自动处理编码,如 UTF-8、UTF-16 等

修改 XML 内容

加载后,可通过 DocumentElementSelectNodes()GetElementsByTagName() 等方法定位节点,再调用 CreateElementCreateTextNodeAppendChildRemoveChildSetAttribute 等进行修改。

常见操作:

Opus Opus

AI生成视频工具

Opus 77 查看详情 Opus
  • 查找节点:XmlNode node = doc.SelectSingleNode("//user[@id='123']");
  • 修改属性:node.Attributes["status"].Value = "active";
  • 添加子节点:node.AppendChild(doc.CreateElement("role")).InnerText = "admin";
  • 删除节点:node.ParentNode.RemoveChild(node);

用 XmlDocument 保存 XML

保存分两种常用方式:

  • 保存到文件:调用 S*e(string filename),会以原始编码(或 UTF-8 默认)写入,保留格式但不自动缩进。
  • 保存为格式化 XML(带缩进):需借助 XmlTextWriterXmlWriter,设置 Formatting.Indented

示例(带缩进保存):

XmlWriterSettings settings = new XmlWriterSettings
{
    Indent = true,
    IndentChars = "  ",
    Encoding = Encoding.UTF8
};
using (XmlWriter writer = XmlWriter.Create("output.xml", settings))
{
    doc.S*e(writer);
}

注意事项

使用 XmlDocument 时要注意几点:

  • 它是内存驻留型,大文件(如 >10MB)可能导致内存压力,此时建议改用 XmlReader/XmlWriter 流式处理。
  • 默认会加载 DTD 并尝试验证,若 XML 含外部 DTD 且网络不可达,可能抛异常;可用 XmlResolver = null 禁用。
  • 保存时不自动修正命名空间前缀,手动操作节点时注意 XmlNamespaceManager 的配合(尤其用 XPath 查询时)。
  • 线程不安全:XmlDocument 实例不能被多个线程同时读写,如需并发操作应加锁或改用线程安全替代方案(如 XDocument 配合不可变操作)。

以上就是C# XmlDocument类怎么用 XmlDocument加载和保存XML的详细内容,更多请关注其它相关文章!


# 编码  # node  # 加载  # .net  # 内存占用  # c#  # stream  # app  # 自动网站建设都有哪些  # 营销推广28找火星下拉  # 玉林江苏整站营销推广  # 天门网站推广优化  # 拼多多流量推广网站有哪些  # seo首页按天计费系统  # 免费推广设计师网站  # 站点关键词自然排名  # 齐齐哈尔seo排名  # 抚顺网站关键词优化电话  # 自动识别  # 相关文章  # 它是  # 两种  # 多个  # 文档  # 如何判断  # 为空  # 如何选择 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 鲁班大师乓乓皮肤获取方法  Lar*el Eloquent:高效删除多对多关系中无关联子记录的父模型  QQ邮箱注册地址 免费获取QQ邮箱账号  《下一站江湖2》大雪山加入方法  CSS如何在页面中引入重置样式_使用Normalize.css或Reset.css统一浏览器默认样式  diskgenius分区工具如何设置Bios启动项  windows10怎么关闭自动安装应用_windows10禁止推广应用下载  vivo云服务一直提示空间不足怎么办 怎么办vivo云服务老是提示空间不足  Yandex世界探索 最新官方免登录入口全知道  Word 2003字体大小设置方法  C#中的Record类型有什么优势?C# 9新特性Record与Class的用法区别  小红书网页版在线直达 小红书网页版免费登录入口  跨语言测试实践:使用Python Selenium测试现有J*a Web项目  作业帮网页版不用下载入口 在线问老师快速答疑  实现可重用自定义Python Range类  《环球网校》设置报考省市方法  电脑开不了机怎么办 电脑无法开机的解决方法  Highcharts雷达图轴线交点数值标注指南  RxJS中如何高效地在一个函数内处理和合并多个数据集合  重返未来:1999卡戎全方位攻略  如何配置VS Code作为您Git操作的默认编辑器  如何测试您的网站全球打开速度-网站海外测速工  《大周列国志》皇帝律令功能介绍  J*aScript二进制处理_ArrayBuffer与Blob  AI图层蒙版怎么用_AI图层蒙版应用技巧与设计实例  智慧团建活动报名入口 智慧团建活动报名入口手机端官网​  mysql归档数据怎么导出为csv_mysql归档数据导出为csv文件的方法  《我的恋爱逃生攻略》中文名字输入方法  漫蛙manwa漫画官网链接_漫蛙manwa最新可用网址推荐  AO3永久镜像入口开放_AO3最新网址兼容所有浏览器  抖音网页版官方链接 抖音网页版官网链接入口  J*aScript桌面应用_Electron多进程架构实战  J*aScript大数运算_BigInt使用指南  高德地图怎么查看未来行程规划_高德地图未来行程规划查看方法  Teambition网盘如何共享文件  菜鸟裹裹怎样获得取件码_菜鸟裹裹获得取件码步骤  夸克浏览器资源嗅探怎么用 夸克浏览器网页资源下载技巧【教程】  wps文字怎么设置文字环绕图片的方式_wps文字如何设置文字环绕图片方式  研招网官方网站招生平台入口_中国研究生招生信息网官网登录  Go语言中方法与接收器:指针和值类型的调用机制详解  大熊猫抓取竹子的“大拇指”其实是什么?蚂蚁庄园课堂今天答案最新11月30日  composer 提示 "requires ext-soap" 缺少 SOAP 扩展怎么办?  《顺丰同城骑士》查看我的技能方法  《金山词霸》语音翻译方法  J*aScript深度克隆:实现高效、健壮与安全的复杂对象复制  植物大战僵尸95版游戏版下载_植物大战僵尸95版游戏版安装指南  学习通网页版课程打不开_课程无法访问时的解决方法  德邦快递查询入口登录官网 德邦快递单号查询系统入口  《图怪兽》退出登录方法  晨报|开发商暗示《空洞骑士:丝之歌》DLC开发中 《合金装备4》有望重制 

 2025-12-20

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.