新闻中心
C# 如何遍历xml文件中的所有节点
使用XmlDocument或XDocument可遍历XML所有节点:1. XmlDocument通过递归遍历子节点;2. XDocument用Descendants()方法简洁获取元素;3. 结合Nodes()和递归处理文本、属性及注释,推荐XDocument并注意异常处理。

在 C# 中遍历 XML 文件中的所有节点,可以使用 System.Xml 命名空间下的 XmlDocument 或 XDocument(LINQ to XML)来实现。下面介绍两种常用方法。
使用 XmlDocument 遍历所有节点
XmlDocument 提供了基于 DOM 的树结构,适合处理较复杂的 XML 操作。
通过递归方式访问每个节点:
using System;
using System.Xml;
<p>class Program
{
static void Main()
{
XmlDocument doc = new XmlDocument();
d
oc.Load("example.xml"); // 替换为你的 XML 文件路径</p><pre class='brush:php;toolbar:false;'> Tr*erseNodes(doc.DocumentElement);
}
static void Tr*erseNodes(XmlNode node)
{
Console.WriteLine($"节点名称: {node.Name}, 节点值: {node.InnerText}");
if (node.HasChildNodes)
{
foreach (XmlNode child in node.ChildNodes)
{
Tr*erseNodes(child);
}
}
}}
使用 XDocument(LINQ to XML)遍历所有节点
XDocument 是 LINQ to XML 的一部分,语法更简洁,推荐用于现代 C# 开发。
利用 Descendants() 方法获取所有子节点:
易森网络企业版
如果您是新用户,请直接将本程序的所有文件上传在任一文件夹下,Rewrite 目录下放置了伪静态规则和筛选器,可将规则添加进IIS,即可正常使用,不用进行任何设置;(可修改图片等)默认的管理员用户名、密码和验证码都是:yeesen系统默认关闭,请上传后登陆后台点击“核心管理”里操作如下:进入“配置管理”中的&ld
0
查看详情
using System;
using System.Linq;
using System.Xml.Linq;
<p>class Program
{
static void Main()
{
XDocument doc = XDocument.Load("example.xml"); // 替换为你的文件路径</p><pre class='brush:php;toolbar:false;'> foreach (var element in doc.Descendants())
{
Console.WriteLine($"元素: {element.Name}, 值: {element.Value}");
}
}}
获取包含文本、属性和注释的完整节点信息
如果需要处理文本节点、属性、注释等,可结合 Nodes() 和递归遍历:
static void Tr*erseXNodes(XElement element)
{
Console.WriteLine($"节点类型: {element.NodeType}, 名称: {element.Name}, 值: {element.Value}");
<pre class='brush:php;toolbar:false;'>// 输出属性
foreach (var attr in element.Attributes())
{
Console.WriteLine($" 属性: {attr.Name} = {attr.Value}");
}
foreach (var node in element.Nodes())
{
if (node is XElement subElement)
{
Tr*erseXNodes(subElement);
}
else
{
Console.WriteLine($" 非元素节点: {node.NodeType}, 值: {node}");
}
}}
基本上就这些。根据需求选择 XmlDocument 或 XDocument,后者更现代、易用。注意处理空值和异常(如文件不存在),确保程序健壮性。
以上就是C# 如何遍历xml文件中的所有节点的详细内容,更多请关注其它相关文章!
# 两种
# 海口专业网站排名优化
# 江西旅游景区网站建设
# 西藏建设网站哪家好
# 中国建设行业网站
# 房产网站建设要点及策略
# 行业网站怎样优化
# 保山网站推广排名
# 东营营销推广有哪些公司
# 天宁腾讯推广员招聘网站
# 濮阳关键词排名工具
# 相关文章
# c#
# 您是
# 分片
# 都是
# 客户端
# 重试
# 多线程
# 遍历
# 递归
# ai
# node
# xml
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
PDF文件体积过大处理_PDF压缩技巧详解
c++ 命名空间怎么用 c++ namespace使用指南
网易大神怎么保存别人动态的图片_网易大神动态图片保存方法
天猫双十一预售商品怎么退款_天猫双十一预售退款操作指南
Golang如何实现状态模式管理对象状态_Golang State模式实现技巧
css滚动动画效果怎么实现_使用Animate.css滚动触发动画类
深入理解rpy2中的类型转换:优化Python对象到R矩阵的映射
动漫花园资源网使用步骤_动漫花园资源网下载流程
MAC怎么安装Homebrew包管理器_MAC为开发者和高级用户安装命令行工具
Win11文件资源管理器卡顿怎么修 Win11重置资源管理器进程优化响应速度【修复方法】
Yandex搜索引擎官方地址 俄罗斯网络世界的主要入口
微信商城在哪里打开【步骤】
“在文档元素之后找到了标记”是什么错误? 检查并修复XML中多个根元素的3个方法
在Typer应用中优雅地处理和重组任意命令行参数
优化Log4j2控制台输出性能:解决异步日志瓶颈
QQ邮箱登录首页官网地址2026 QQ邮箱官方网页入口
AO3访问入口汇总 AO3网页版同人作品一键直达
C++如何连接MySQL数据库_C++使用Connector/C++操作MySQL数据库教程
星露谷物语官网入口 星露谷物语游戏官网入口
steam官方入口大全 steam账号注册及操作指南
CSS Flexbox与媒体查询:实现响应式布局中元素的并排与堆叠
抖音网页版快捷访问 抖音网页版网页版入口操作教程
Win11怎么开启省电模式_Win11电池节电模式自动开启
J*a TimerTask中HashMap意外清空的深层原因与解决方案
AO3官网镜像链接 Archive of Our Own同人文在线浏览
Lar*el的路由模型绑定怎么用_Lar*el Route Model Binding简化控制器逻辑
C++如何实现线程池_C++11手动实现一个简单的固定大小线程池
mysql备份恢复性能优化_mysql备份恢复性能优化方法
学习通网页版官方登录 超星学习通电脑端入口指南
深入理解J*a链表中的IPosition接口与使用
HTML空白字符处理机制:渲染、DOM与编码实践
win11如何卸载Windows更新补丁 Win11解决更新导致系统不稳定的问题【修复】
Go语言中对Map值调用带指针接收者方法:原理与最佳实践
小米Civi 4录制视频过暗_小米Civi 4亮度优化
如何提高微信支付的安全性_微信支付安全防护与设置建议
163邮箱注册官网 免费申请163个人邮箱
Golang如何处理RPC请求负载均衡_Golang RPC请求负载均衡策略与实践
Golang如何使用new_Go new分配内存机制讲解
在命令行怎么运行html项目_命令行运行html项目方法【教程】
sublime如何处理大型CSV文件的列对齐_sublime高级表格编辑插件指南
知乎APP怎么管理已购盐选内容_知乎APP盐选内容购买记录与查看方法
XML中包含HTML标签导致解析错误? 正确嵌入非XML数据的两种方法
Python自定义类排序:解决lambda键值访问TypeError的实践指南
修复二维数组索引越界异常:一维循环到二维坐标的正确映射
地铁跑酷免费秒玩入口链接 地铁跑酷小游戏免费秒玩网站
为什么我的微信朋友圈看不到别人的更新_微信朋友圈更新显示异常解决方法
c++如何使用std::memory_order控制原子操作顺序_c++ C++11内存模型详解
必由学官网入口 必由学教师登录入口
Win11如何开启讲述人功能 Win11屏幕阅读器(讲述人)开启与关闭【教程】
铁路12306改签能改到更早的车次吗_铁路12306改签提前车次规则


2025-10-30
浏览次数:次
返回列表
oc.Load("example.xml"); // 替换为你的 XML 文件路径</p><pre class='brush:php;toolbar:false;'> Tr*erseNodes(doc.DocumentElement);
}
static void Tr*erseNodes(XmlNode node)
{
Console.WriteLine($"节点名称: {node.Name}, 节点值: {node.InnerText}");
if (node.HasChildNodes)
{
foreach (XmlNode child in node.ChildNodes)
{
Tr*erseNodes(child);
}
}
}