新闻中心

c#如何读写xml文件 c#操作xml节点的实例

2025-11-06
浏览次数:
返回列表
C#中操作XML常用XmlDocument和XDocument。1. XmlDocument采用DOM模型,适合复杂结构:可创建声明、元素、属性,通过Load/S*e读写文件,SelectNodes查询节点,修改后保存。2. XDocument基于LINQ to XML,语法简洁:使用XElement构建层次结构,Descendants查找元素,Add添加节点,推荐新项目使用。两者均可实现XML的增删改查,XDocument更现代清晰。

c#如何读写xml文件 c#操作xml节点的实例

在C#中读写XML文件非常常见,通常使用System.Xml命名空间下的类来操作。最常用的是XmlDocumentXDocument(LINQ to XML)。下面通过实例演示如何创建、读取、修改和保存XML文件。

使用XmlDocument读写XML文件

XmlDocument是传统的DOM方式操作XML,适合处理结构较复杂的文档。

刺鸟创客 刺鸟创客

一款专业高效稳定的AI内容创作平台

刺鸟创客 110 查看详情 刺鸟创客 // 示例:创建并保存一个XML文件

var doc = new XmlDocument();
var declaration = doc.CreateXmlDeclaration("1.0", "utf-8", null);
doc.AppendChild(declaration);

var root = doc.CreateElement("Users");
doc.AppendChild(root);

var user = doc.CreateElement("User");
user.SetAttribute("Id", "1");

var name = doc.CreateElement("Name");
name.InnerText = "张三";
user.AppendChild(name);

var age = doc.CreateElement("Age");
age.InnerText = "25";
user.AppendChild(age);

root.AppendChild(user);
doc.S*e("users.xml"); // 保存到文件

// 示例:读取XML文件

var doc = new XmlDocument();
doc.Load("users.xml"); // 从文件加载

var users = doc.SelectNodes("//User");
foreach (XmlNode node in users)
{
   var id = node.Attributes["Id"]?.Value;
   var name = node["Name"]?.InnerText;
   var age = node["Age"]?.InnerText;
   Console.WriteLine($"ID: {id}, 姓名: {name}, 年龄: {age}");
}

// 示例:修改XML节点

var doc = new XmlDocument();
doc.Load("users.xml");

var userNode = doc.SelectSingleNode("//User[@Id='1']");
if (userNode != null)
{
   userNode["Name"].InnerText = "李四";
   doc.S*e("users.xml");
}

使用XDocument(LINQ to XML)操作XML

XDocument是LINQ to XML的一部分,语法更简洁,推荐用于新项目。

// 示例:创建并保存XML

var doc = new XDocument(
   new XElement("Users",
      new XElement("User",
         new XAttribute("Id", "1"),
         new XElement("Name", "王五"),
         new XElement("Age", "30")
      )
   )
);
doc.S*e("users_linq.xml");

// 示例:读取XML

var doc = XDocument.Load("users_linq.xml");
var users = doc.Descendants("User");
foreach (var user in users)
{
   var id = user.Attribute("Id")?.Value;
   var name = user.Element("Name")?.Value;
   var age = user.Element("Age")?.Value;
   Console.WriteLine($"ID: {id}, 姓名: {name}, 年龄: {age}");
}

// 示例:添加新节点

var doc = XDocument.Load("users_linq.xml");
doc.Root?.Add(
   new XElement("User",
      new XAttribute("Id", "2"),
      new XElement("Name", "赵六"),
      new XElement("Age", "28")
   )
);
doc.S*e("users_linq.xml");

常见操作总结

  • 创建元素:使用 CreateElement 或 new XElement
  • 设置属性:SetAttribute 或 new XAttribute
  • 查找节点:SelectSingleNode / SelectNodes 或 Descendants()
  • 修改内容:直接赋值 InnerText 或 Value
  • 保存文件:S*e() 方法
基本上就这些。两种方式都能有效操作XML,选择哪个取决于项目需求和个人偏好。XDocument 更现代,代码更清晰。

以上就是c#如何读写xml文件 c#操作xml节点的实例的详细内容,更多请关注其它相关文章!


# app  # 温州网站优化电池充电  # 营销推广名称大全  # 南山推广营销公司  # 东城网站关键字优化价格  # 济源专业网站seo  # 高效营销推广哪家好点  # 旅游微博推广营销方案  # 优化网站链接路径的方法  # 凯里手机网站优化  # 解决问题  # 均可  # 中文网  # 相关文章  # 两种  # 都能  # 如何在  # 并保存  # 的是  # 如何选择  # c#  # node  # 海南seo软件如何获客 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: Python类型检查:优化关联可选属性的Mypy推断策略  深入理解J*aScript中的B样条曲线与节点向量生成  处理Kafka消费者会话超时:深入理解消息处理语义与幂等性  京东京造J1和网易云音乐氧气真无线有什么不同_国产电商蓝牙耳机音质对比  msn官网入口地址手机版 msn官方网站手机最新链接  J*a递归快速排序中静态变量导致数据累积的陷阱与解决方案  小红书网页版入口链接分享 小红书官网直接进  使用Pandas转换并合并DataFrame:多列映射至统一结构  CSS Flexbox与媒体查询:实现响应式布局中元素的并排与堆叠  Python Socket多播通信中指定源IP地址的实践指南  Lar*el 递归关系中排除指定分支的教程  J*aScript生成器_j*ascript异步迭代  C++如何实现一个智能指针_手动实现C++ shared_ptr的引用计数功能  微信商城在哪里打开【步骤】  谷歌学术网站直达地址 谷歌学术搜索网页版一键进入  优化LangChain文档加载与ChromaDB集成:解决多文档处理与分块问题  mysql通配符支持数字匹配吗_mysql通配符能否用于数字匹配的解析  J*aScript map 方法中处理循环元素为空数组的策略  CSS子选择器:如何区分并样式化嵌套列表的子层级  uc手机浏览器网页版入口 uc浏览器手机版便捷登录首页  word中如何让数字纵向排列_Word数字纵向排列方法  谷歌邮箱网页版官方页面入口 谷歌邮箱网页端快速访问  现代化 SciPy 一维插值:interp1d 的替代方案与最佳实践  百度网盘网页版入口 百度网盘网页版官方登录网址  J*aScript中赋值与自增运算符的复杂交互与执行机制  响应式CSS Grid布局:优化网格项在小屏幕下的堆叠与宽度适配  微信语音通话掉线如何解决 微信语音通话稳定优化方法  Django表单验证失败时保留用户输入数据的最佳实践  React项目中导航栏Logo自适应布局:避免裁剪与布局溢出  蛙漫官方正版入口 蛙漫网页在线全集免费观看  c++如何使用std::memory_order控制原子操作顺序_c++ C++11内存模型详解  如何使用纯J*aScript判断Input元素是否在特定类容器内  2026春节假期票务安排_2026春节放假购票指南  Composer中的^和~符号代表什么_精通Composer版本号语义化约束  UC浏览器如何安装插件 UC浏览器添加扩展程序详细教程【进阶】  电脑IP地址怎么查 查看本机IP地址的几种方法  iwriter统一登录平台 iwrite账号密码登录页面  夸克浏览器图书入口 夸克手机浏览器阅读入口  Lar*el头像管理:图片缩放与旧文件删除的最佳实践  迅雷下载到U盘速度很慢怎么办_迅雷U盘下载慢优化方法  蛙漫2日版入口 WAMAN2(日版)无删减漫画官网链接  C#如何安全地从用户上传的XML文件中读取数据? 验证与清理策略  Windows10怎么开启夜间模式 Windows10系统设置调整色温与亮度缓解夜间用眼疲劳【教程】  Composer的 "licenses" 命令如何帮助你遵守开源协议_检查项目依赖的许可证合规性  MAC的“快捷指令”怎么同步到iPhone_MAC利用iCloud同步所有设备的自动化指令  电脑安装程序提示“错误1722”怎么办_Windows Installer服务问题解决【教程】  内存检查:在VS Code中调试C++时的内存视图  搜狗浏览器如何使用密码生成器创建强密码 搜狗浏览器内置密码安全工具  Python大型XML文件高效流式解析教程  TikTok国际版官网直达_TikTok国际版官网直达进入在线观看 

搜索