新闻中心

C# 如何读取并解析xml文件

2025-10-28
浏览次数:
返回列表
推荐使用XDocument解析小文件,代码简洁;大文件选用XmlReader节省内存;XmlDocument适合老项目。

c# 如何读取并解析xml文件

在C#中读取并解析XML文件有多种方式,常用的是使用 XmlDocumentXDocument(LINQ to XML)和 XmlReader。下面介绍这三种方法的基本用法,帮助你根据需求选择合适的方式。

使用 XmlDocument 读取 XML

XmlDocument 是基于 DOM 的类,会将整个 XML 文档加载到内存中,适合结构简单、数据量不大的 XML 文件。

示例 XML 文件(data.xml):



  
    张三
    25
  

  
    李四
    30
  

代码示例:

Pinokio Pinokio

Pinokio是一款开源的AI浏览器,可以安装运行各种AI模型和应用

Pinokio 232 查看详情 Pinokio

using System;
using System.Xml;

var doc = new XmlDocument();
doc.Load("data.xml"); // 或 LoadXml(string) 加载字符串

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

使用 XDocument(推荐,LINQ to XML)

XDocument 属于 LINQ to XML,语法更简洁,支持 LINQ 查询,是现代 C# 开发中的首选方式。

代码示例:

using System;
using System.Linq;
using System.Xml.Linq;

var doc = XDocument.Load("data.xml");

var users = from user in doc.Descendants("User")
      select new
      {
        Id = user.Attribute("Id")?.Value,
        Name = user.Element("Name")?.Value,
        Age = user.Element("Age")?.Value
      };

foreach (var u in users)
{
  Console.WriteLine($"ID: {u.Id}, 姓名: {u.Name}, 年龄: {u.Age}");
}

使用 XmlReader 流式读取(高效但复杂)

XmlReader 是只进、只读的流式读取器,适合处理大文件,节省内存。

代码示例:

using System;
using System.Xml;

using var reader = XmlReader.Create("data.xml");

while (reader.Read())
{
  if (reader.NodeType == XmlNodeType.Element && reader.Name == "User")
  {
    string id = reader.GetAttribute("Id");
    
    reader.ReadToDescendant("Name");
    string name = reader.ReadElementContentAsString();
    
    reader.ReadToNextSibling("Age");
    string age = reader.ReadElementContentAsString();
    
    Console.WriteLine($"ID: {id}, 姓名: {name}, 年龄: {age}");
  }
}

基本上就这些。小文件推荐用 XDocument,结构清晰;大文件考虑 XmlReader;老项目可能还在用 XmlDocument。选哪个取决于你的场景。

以上就是C# 如何读取并解析xml文件的详细内容,更多请关注其它相关文章!


# 还在  # 开封app网站建设方案  # 重庆官网网站搭建推广哪家好  # 哈尔滨网站建设方案咨询  # 高邑网站推广营销招聘  # 章丘网站建设哪家好用  # seo抖音优化机构  # 老乡及营销推广方案  # 谷歌seo新手入门seo博客  # 固原seo公司首推11火星  # 甘肃会计网站建设  # 推荐使用  # c#  # 加载  # 分片  # 流式  # 客户端  # 的是  # 重试  # 大文件  # 多线程  # node  # xml解析 


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


相关推荐: 限制HTML日期输入框的日期选择范围  Golang如何安装Swagger工具_GoSwagger文档生成环境  动漫岛观看全网网 动漫岛在线正版动漫入口  QQ邮箱网页版入口页面 QQ邮箱在线登录入口官网  qq邮箱日历功能怎么用_创建日程与会议邀请的技巧  谷歌浏览器一键优化方案_谷歌浏览器直达主页极速不卡版  LocoySpider如何部署到云服务器_LocoySpider云部署的远程配置  抖音小游戏合成大西瓜免费秒玩入口链接 抖音小游戏热门合集秒玩网站  Golang如何通过reflect获取匿名字段方法_Golang reflect匿名字段方法访问技巧  正确连接J*aScript到HTML实现可点击图片与自定义事件处理  J*aScript数据结构转换:将对象数组按类别分组  微信聊天记录怎么加密_微信聊天记录加密方法  我的世界官方游戏入口 我的世界官网平台直达链接  Bing引擎入口最新2025 Bing搜索免费官方登录  QQ邮箱网页版快速登录 QQ邮箱邮箱账号官方入口地址  如何更改在 Excel 中打开超链接时的默认浏览器  Win11怎么隐藏桌面图标 Win11一键隐藏所有桌面元素及恢复显示  漫蛙漫画网页端入口 漫蛙2官方正版漫画站点  Win11怎么关闭快速启动_Win11彻底关机设置教程  新三国志曹操传110级星符试炼夏侯渊极难攻略  vivo手机参数配置怎么增强信号_vivo手机参数配置信号增强方法  excel怎么制作工资条 excel快速生成工资条的方法  蛙漫官方正版入口 蛙漫网页在线全集免费观看  Excel如何用迷你图显趋势_Excel用迷你图显趋势【趋势小图】  谷歌浏览器怎么给标签页静音_Chrome标签静音快捷操作  在J*a中如何在J*a中使用异常机制记录错误日志_异常日志实践经验  Golang如何实现Web文件静态资源服务器_Golang静态资源服务器开发与实践  qq浏览器如何查看和导出已保存的密码 qq浏览器密码管理器数据备份教程  必由学网页版入口 必由学官方平台直接访问  PHP中SSG-WSG API的AES加密实践:正确使用初始化向量  初次安装JDK时环境变量如何正确配置_J*A_HOME与PATH设置规则讲解  TikTok国际版网页端快速入口 TikTok全球版短视频浏览教程  MAC怎么安装Homebrew包管理器_MAC为开发者和高级用户安装命令行工具  妖精动漫免费平台 妖精动漫官网资源观看网址  Yandex免登录官网入口_俄罗斯Yandex搜索引擎直达链接  谷歌推RCS信息存档功能:公司可监控员工私密信息!  QQ邮箱在线使用入口 QQ邮箱个人账号网页版登录  Win11 USB传输速度慢怎么解决 Win11 USB驱动更新与设置  Win11 BitLocker密码忘了怎么办 Win11找回BitLocker恢复密钥方法【解决】  CSS布局:解决全屏元素100%尺寸与外边距导致的页面溢出问题  Win10怎么设置静态IP地址 Win10手动配置IP地址步骤【指南】  Excel文件在线转换快速入口 Excel在线格式转换网站  Win10如何清理注册表垃圾 Win10手动清理无效注册表【技巧】  抖音创作助手登录入口_抖音创作辅助工具官网直达  Mac怎么查看崩溃日志_Mac控制台错误报告分析  在J*a中如何开发简易博客标签推荐系统_博客标签推荐项目实战解析  一加手机电池耗电快怎么办_一加手机电池耗电快的解决方法  c++如何使用chrono库处理时间_c++标准库时间与日期操作  高德地图公交到站提醒失败如何解决 高德提醒权限设置  Mac怎么锁定备忘录_Mac备忘录加密设置教程 

搜索