C#如何遍历一个XML文件的所有节点和属性-XML/RSS教程

推荐使用XDocument递归遍历XML所有节点和属性:从根元素开始,逐层输出元素名、值及属性,并用Nodes()而非Elements()覆盖文本、注释等全类型节点;也可用Descendants().Attributes()一次性提取全部属性。

在C#中遍历XML文件的所有节点和属性,推荐使用 XDocument(LINQ to XML)——它简洁、易读、功能强大,比传统的 XmlDocument 更现代,也比 XmlReader 更适合全树遍历。

用 XDocument 递归遍历所有节点和属性

核心思路是:加载XML后,从根元素开始,递归访问每个元素及其子节点,并在每层输出当前元素的名称、值、属性列表。

示例代码:

using System;
using System.Xml.Linq;

public static void TraverseAllNodes(string filePath)
{
    try
    {
        var doc = XDocument.Load(filePath);
        TraverseElement(doc.Root);
    }
    catch (Exception ex)
    {
        Console.WriteLine($"加载或解析失败:{ex.Message}");
    }
}

private static void TraverseElement(XElement element)
{
    if (element == null) return;

    // 输出当前元素信息
    Console.WriteLine($"元素:  | 值: \"{element.Value.Trim()}\"");

    // 输出所有属性
    if (element.HasAttributes)
    {
        foreach (var attr in element.Attributes())
        {
            Console.WriteLine($"  属性: {attr.Name} = \"{attr.Value}\"");
        }
    }

    // 递归遍历子元素(跳过文本/空白节点,只处理元素节点)
    foreach (var child in element.Elements())
    {
        TraverseElement(child);
    }
}

区分不同节点类型(元素、文本、注释等)

XNode 是所有XML节点的基类,包括 XElement、XText、XComment、XProcessingInstruction 等。若需完整遍历(含文本节点),应使用 element.Nodes() 而非 element.Elements():

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » C#如何遍历一个XML文件的所有节点和属性-XML/RSS教程
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1393+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4028961+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1393+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4028961+
  • 本周更新: 0+
  • 最后更新: 2026-03-16