C#怎么创建XML文档 XmlDocument使用方法

来源:菜鸟站长作者:松松建站头衔:草根站长
导读:本期聚焦于小伙伴创作的《C#怎么创建XML文档 XmlDocument使用方法》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《C#怎么创建XML文档 XmlDocument使用方法》有用,将其分享出去将是对创作者最好的鼓励。

在C#开发中,XmlDocument是System.Xml命名空间下用于操作XML文档的核心类,它提供了完整的DOM(文档对象模型)操作能力,支持创建、修改、查询和保存XML文档,是处理XML格式数据的常用工具。

C#怎么创建XML文档 XmlDocument使用方法

XmlDocument基础准备

使用XmlDocument前需要先引入对应的命名空间,在代码文件顶部添加以下引用:

using System.Xml;

XmlDocument的核心能力围绕XML节点展开,所有XML元素、属性、文本都属于对应的节点类型,常见节点类型如下:

节点类型说明
XmlNode所有XML节点的基类,包含节点名称、值、子节点等通用属性
XmlElementXML元素节点,对应XML中的标签,可包含属性和子元素
XmlAttributeXML属性节点,对应元素上的属性键值对
XmlDeclarationXML声明节点,对应文档开头的<?xml version="1.0"?>部分

创建XML文档完整步骤

1. 初始化XmlDocument对象

首先创建XmlDocument实例,这是所有操作的基础:

// 创建XmlDocument实例
XmlDocument xmlDoc = new XmlDocument();

2. 添加XML声明

XML文档通常需要声明版本和编码格式,通过CreateXmlDeclaration方法创建声明节点并添加到文档:

// 创建XML声明,版本1.0,编码UTF-8
XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);
// 将声明节点添加到文档最前面
xmlDoc.AppendChild(xmlDeclaration);

3. 创建根节点

XML文档必须有且仅有一个根节点,通过CreateElement方法创建根元素,再添加到文档中:

// 创建根节点,名称为StudentList
XmlElement rootElement = xmlDoc.CreateElement("StudentList");
// 将根节点添加到文档
xmlDoc.AppendChild(rootElement);

4. 添加子元素与属性

可以在根节点下添加子元素,同时给元素添加属性或者文本内容:

// 创建第一个学生子元素
XmlElement student1 = xmlDoc.CreateElement("Student");
// 给学生元素添加ID属性
XmlAttribute idAttr1 = xmlDoc.CreateAttribute("ID");
idAttr1.Value = "1001";
student1.Attributes.Append(idAttr1);
// 给学生元素添加Name子元素
XmlElement name1 = xmlDoc.CreateElement("Name");
name1.InnerText = "张三";
student1.AppendChild(name1);
// 给学生元素添加Age子元素
XmlElement age1 = xmlDoc.CreateElement("Age");
age1.InnerText = "20";
student1.AppendChild(age1);
// 将学生元素添加到根节点
rootElement.AppendChild(student1);

// 创建第二个学生子元素
XmlElement student2 = xmlDoc.CreateElement("Student");
XmlAttribute idAttr2 = xmlDoc.CreateAttribute("ID");
idAttr2.Value = "1002";
student2.Attributes.Append(idAttr2);
XmlElement name2 = xmlDoc.CreateElement("Name");
name2.InnerText = "李四";
student2.AppendChild(name2);
XmlElement age2 = xmlDoc.CreateElement("Age");
age2.InnerText = "21";
student2.AppendChild(age2);
rootElement.AppendChild(student2);

5. 保存XML文档

完成节点构建后,通过Save方法将文档保存到指定路径:

// 保存文档到当前程序运行目录的students.xml文件
string savePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "students.xml");
xmlDoc.Save(savePath);
Console.WriteLine($"XML文档已保存至:{savePath}");

完整示例代码

以下是上述所有步骤整合后的完整可运行代码:

using System;
using System.Xml;
using System.IO;

namespace XmlDocumentDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 初始化XmlDocument
            XmlDocument xmlDoc = new XmlDocument();
            
            // 添加XML声明
            XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);
            xmlDoc.AppendChild(xmlDeclaration);
            
            // 创建根节点
            XmlElement rootElement = xmlDoc.CreateElement("StudentList");
            xmlDoc.AppendChild(rootElement);
            
            // 添加第一个学生节点
            XmlElement student1 = xmlDoc.CreateElement("Student");
            XmlAttribute idAttr1 = xmlDoc.CreateAttribute("ID");
            idAttr1.Value = "1001";
            student1.Attributes.Append(idAttr1);
            
            XmlElement name1 = xmlDoc.CreateElement("Name");
            name1.InnerText = "张三";
            student1.AppendChild(name1);
            
            XmlElement age1 = xmlDoc.CreateElement("Age");
            age1.InnerText = "20";
            student1.AppendChild(age1);
            
            rootElement.AppendChild(student1);
            
            // 添加第二个学生节点
            XmlElement student2 = xmlDoc.CreateElement("Student");
            XmlAttribute idAttr2 = xmlDoc.CreateAttribute("ID");
            idAttr2.Value = "1002";
            student2.Attributes.Append(idAttr2);
            
            XmlElement name2 = xmlDoc.CreateElement("Name");
            name2.InnerText = "李四";
            student2.AppendChild(name2);
            
            XmlElement age2 = xmlDoc.CreateElement("Age");
            age2.InnerText = "21";
            student2.AppendChild(age2);
            
            rootElement.AppendChild(student2);
            
            // 保存文档
            string savePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "students.xml");
            xmlDoc.Save(savePath);
            Console.WriteLine($"XML文档创建完成,保存路径:{savePath}");
            
            // 读取保存的XML内容输出验证
            Console.WriteLine("n生成的XML内容:");
            Console.WriteLine(File.ReadAllText(savePath));
        }
    }
}

注意事项

  • XmlDocument操作的是整个XML文档的DOM树,适合处理中小型XML文件,大文件建议使用XmlReader流式处理
  • 添加节点时要注意节点的层级关系,避免添加重复的同级根节点
  • 如果保存路径的目录不存在,Save方法会抛出异常,需要提前确保目录存在
  • XML元素名称和属性名称区分大小写,命名要符合XML规范,不能包含特殊字符
XmlDocument的DOM操作模式让XML处理更直观,开发者可以像操作树结构一样修改XML内容,掌握其基础用法能应对大部分C#中的XML创建需求。

C#XmlDocumentXML文档创建XML操作修改时间:2026-07-12 11:45:26

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。