C#如何操作XML文件 C#使用XmlDocument和LINQ to XML解析XML


答案:C#中操作XML常用XmlDocument和LINQ to XML;XmlDocument基于DOM,适合复杂操作;LINQ to XML语法简洁,支持LINQ查询,推荐新项目使用。

c#如何操作xml文件 c#使用xmldocument和linq to xml解析xml

在C#中操作XML文件是常见的需求,尤其是在处理配置文件、数据交换或Web服务时。.NET 提供了多种方式来读取、修改和创建 XML 文件,其中 XmlDocumentLINQ to XML 是两种最常用的方法。下面分别介绍它们的使用方式和适用场景。

使用 XmlDocument 操作 XML

XmlDocument 是基于 DOM(文档对象模型)的类,它会将整个 XML 文档加载到内存中,形成树形结构,适合对 XML 进行频繁的增删改查操作。

示例:读取并遍历 XML 节点

假设有一个 XML 文件 books.xml

<Books>
  <Book Id="1">
    <Title>C# 入门经典</Title>
    <Author>John Doe</Author>
  </Book>
  <Book Id="2">
    <Title>深入理解 C#</Title>
    <Author>Jane Smith</Author>
  </Book>
</Books>

使用 XmlDocument 加载并读取内容:

XmlDocument doc = new XmlDocument();
doc.Load("books.xml"); // 或 LoadXml(string xml)
<p>XmlNodeList bookNodes = doc.SelectNodes("//Book");
foreach (XmlNode node in bookNodes)
{
string id = node.Attributes["Id"]?.Value;
string title = node["Title"]?.InnerText;
string author = node["Author"]?.InnerText;</p><pre class='brush:php;toolbar:false;'>Console.WriteLine($"ID: {id}, Title: {title}, Author: {author}");

}

修改 XML 示例

添加一个新节点:

XmlElement newBook = doc.CreateElement("Book");
newBook.SetAttribute("Id", "3");
<p>XmlElement titleElem = doc.CreateElement("Title");
titleElem.InnerText = "LINQ 实战";
newBook.AppendChild(titleElem);</p><p>XmlElement authorElem = doc.CreateElement("Author");
authorElem.InnerText = "Tom Lee";
newBook.AppendChild(authorElem);</p><p>doc.DocumentElement?.AppendChild(newBook);
doc.S*e("books.xml"); // 保存更改</p>

使用 LINQ to XML 操作 XML

LINQ to XML 是一种更现代、更简洁的方式,它结合了 LINQ 的查询能力,语法更直观,适合函数式编程风格。

示例:加载并查询 XML

标贝悦读AI配音 标贝悦读AI配音

在线文字转语音软件-专业的配音网站

标贝悦读AI配音 66 查看详情 标贝悦读AI配音

同样以上面的 books.xml 为例:

XDocument xDoc = XDocument.Load("books.xml");
<p>var books = from book in xDoc.Descendants("Book")
select new
{
Id = book.Attribute("Id")?.Value,
Title = book.Element("Title")?.Value,
Author = book.Element("Author")?.Value
};</p><p>foreach (var b in books)
{
Console.WriteLine($"ID: {b.Id}, Title: {b.Title}, Author: {b.Author}");
}</p>

创建 XML 示例

LINQ to XML 创建 XML 更加简洁:

XDocument newDoc = new XDocument(
    new XElement("Books",
        new XElement("Book", new XAttribute("Id", "1"),
            new XElement("Title", "C# 高级编程"),
            new XElement("Author", "Jeffrey Richter")
        ),
        new XElement("Book", new XAttribute("Id", "2"),
            new XElement("Title", "CLR via C#"),
            new XElement("Author", "Jeffrey Richter")
        )
    )
);
<p>newDoc.S*e("new_books.xml");</p>

修改 XML 示例

更新某个节点的内容:

XDocument xDoc = XDocument.Load("books.xml");
var book = xDoc.Descendants("Book")
               .FirstOrDefault(b => b.Attribute("Id")?.Value == "1");
if (book != null)
{
    book.Element("Title")!.Value = "C# 精通之路";
}
<p>xDoc.S*e("books.xml");</p>

XmlDocument 与 LINQ to XML 对比

  • XmlDocument:适合复杂操作、需要完整 DOM 树、兼容老项目;语法略显繁琐。
  • LINQ to XML:语法简洁、支持 LINQ 查询、创建和修改更直观;推荐用于新项目。

如果只是简单读取或生成 XML,优先选择 LINQ to XML。如果需要精确控制节点类型、命名空间或进行复杂的节点操作,XmlDocument 依然可靠。

基本上就这些。根据项目需求选择合适的方式,都能高效地完成 XML 操作任务。

以上就是C#如何操作XML文件 C#使用XmlDocument和LINQ to XML解析XML的详细内容,更多请关注其它相关文章!


# 是在  # 网站营销推广目标  # 义乌定制网站建设  # 汽车营销实务营销推广  # seo图片域名  # 长春网站建设详细教程  # 上海网站建设收费  # 珠海建设集团网站首页  # 互联网智能营销推广系统  # 专业网站制作及推广  # 学校网站建设策划书预算  # 都能  # 是一种  # node  # 文档  # 开源  # 如何使用  # 加载  # 如何处理  # 死锁  # .net  # c#  # xml解析  # 配置文件  # app 


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


相关推荐: 抖音如何进行蓝V认证 抖音企业号申请所需资料与流程  如何在mysql中比较InnoDB和MyISAM区别  Flask 应用中图片动态更新与上传:实现客户端定时刷新与服务器端文件管理  J*aScript中高效处理用户输入:从Keyup事件到表单提交的优化实践  c++如何实现一个简单的RPC框架_c++远程过程调用原理与实践  优化CSS动画与J*aScript定时器协同:构建稳定Toast提示  研招网官方网站招生平台入口_中国研究生招生信息网官网登录  如何在Python中安全地将环境变量转换为整数并满足Mypy类型检查  windows server2019显卡驱动怎么安装_winserver2019显卡驱动安装与远程桌面优化  Three.js中动态更换3D模型纹理的教程  《图怪兽》退出登录方法  汽车之家网页版免费登录_汽车之家官网首页直接进入  发博客与长微博技巧  Firefox OS应用开发:解决XMLHttpRequest跨域请求阻塞问题  小米civi如何设置锁屏时间  如何在mysql中使用索引提示_mysql索引提示优化方法  悟空浏览器如何恢复关闭的标签页 悟空浏览器撤销关闭网页快捷键设置  被称为海蜈蚣的海洋动物是  智云Q3和Q2有什么升级_智云Q3与Q2手持云台功能与性能对比分析  《爱笔思画x》涂色教程  店铺如何关联视频号推广?视频号推广有什么用?  抖音如何解除|直播|权限绑定_抖音关闭并解绑|直播|功能的方法  教育查询官方网站入口 教育个人档案查询免费官网  顺丰官方查单号入口 顺丰快递单号查询官网入口  如何编写一个符合 composer 规范的 post-install-cmd 脚本?  《搜书吧》阅读书籍方法  mysql如何回滚事务_mysql ROLLBACK事务回滚方法  顺丰快递收费标准查询_如何查看顺丰最新收费价格  qq邮箱格式填写示例 qq邮箱标准填写规范  win11如何开启单声道音频 Win11为听障用户合并左右声道【辅助】  126邮箱申请入口官网_126邮箱注册免费登录2025  创客贴登录页面入口 创客贴网页版最新网址链接  睡觉时心跳快是什么原因 夜间心悸如何应对  泰拉瑞亚水晶无法放置问题  如何在CSS中使用伪类:valid实现表单验证提示_结合:valid改变边框颜色  PSD转AI文件的简单方法  淘口令快速解析技巧  微星主板BIOS怎么调整内存时序_内存参数手动优化BIOS设置教程  《健康大兴》注册方法介绍  Win10共享文件夹设置方法 Win10局域网文件共享全攻略【教程】  网易云音乐闹钟铃声设置教程  《浙里办》电子发票开具方法  如何使用 Optional 类型并满足 Pylint 的类型检查  sublime怎么快速在浏览器中预览HTML_sublime配置View in Browser教程  铁路12306官网入口 铁路12306中国铁路官网登录首页  在VS Code中进行数据科学和机器学习开发  CSS如何控制元素外边距_margin实现布局间隔  J*aScript字符串_Unicode处理  教资成绩怎么查询  纯CSS实现自适应宽度与响应式布局的水平按钮组 

 2025-11-13

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

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

点击免费数据支持

提交您的需求,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.