C# XML 文件

在 C# 中处理 XML 文件是非常常见的操作,可以使用**System.Xml**命名空间中的类来实现。以下是一些常用的 XML 操作示例:

手册链接: System.Xml 命名空间

XmlDocument 创建一个xml数据格式的文档

cs 复制代码
XmlDocument xml = new XmlDocument();

XmlDeclaration是 C# 中 System.Xml 命名空间下的一个类,用于表示 XML 文档开头的声明 部分(即 <?xml ...?> 标签),即创建文档第一行。

cs 复制代码
// 创建文档第一行
XmlDeclaration dcl = xml.CreateXmlDeclaration("1.0", "UTF-8",null);

// 将创建的节点信息 存放到xml文件中
xml.AppendChild(dcl);

XML 声明的典型格式为:

XML 复制代码
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
  • version:指定 XML 版本(几乎都是 "1.0",这是目前最通用的版本)
  • encoding:指定文件编码(如 "utf-8"、"gbk" 等,影响文本的解析方式)
  • standalone:表示文档是否独立于外部资源("yes" 表示不依赖外部 DTD,"no" 表示依赖)
    AppendChild 将创建的节点信息 存放到xml文件中

在 C# 的 XML 处理中,AppendChild 是用于向 XML 节点添加子节点的方法,它属于 XmlNode 类(以及其派生类如 XmlElement、XmlDocument 等)。该方法会将指定的节点添加到当前节点的子节点集合的末尾。

创建节点

XmlElement 元素的节点

CreateElement 是XmlDocument的方法 用于创建XmlElement 节点 "root" 是节点的名字

cs 复制代码
 XmlElement root = xml.CreateElement("root"); // <root> </root>
 xml.AppendChild(root);

InnerText 添加节点文本

SetAttribute 设置节点的属性

cs 复制代码
 XmlElement Name = xml.CreateElement("Name");
 //添加节点文本
 Name.InnerText = "张三";
 root.AppendChild(Name);
 //设置节点的属性
 Name.SetAttribute("id","123456");

 XmlElement Age = xml.CreateElement("Age");
 Age.InnerText = "18";
 root.AppendChild(Age);

Save不写路径的情况下 会默认保存到当前运行程序的路径下

cs 复制代码
xml.Save("Xml项目文件.txt");
Console.WriteLine("写入成功");

读取文件内容

Load 加载xml文件

cs 复制代码
 XmlDocument xd = new XmlDocument();
 //Load 加载xml文件
 xd.Load("Xml项目文件.txt");

XmlNode访问根节点

cs 复制代码
//XmlNode访问根节点
XmlNode xn =  xd.DocumentElement;
Console.WriteLine(xn.Name);
cs 复制代码
//遍历
foreach (XmlNode item in xn.ChildNodes)
{
    //节点名称
    Console.WriteLine(item.Name);
    //节点内容
    Console.WriteLine(item.InnerText);
    if (item.InnerText == "张三")
    {
        Console.WriteLine("有张三");
    }
}
相关推荐
hixiong12313 分钟前
C# 使用 ZXingCpp.Angle 进行条码、二维码识别
开发语言·c#·扫码
企业数字化笔记25 分钟前
租户停用后数据和任务怎么处理?冻结、恢复与保留策略的实现
android·java·spring boot
CarIise31 分钟前
Spring MVC 请求参数绑定与常用注解
java·spring·mvc
步步为营DotNet37 分钟前
System.Text.Json 源生成:三个“看起来已经生效“的静默失效
c#·.net·native aot·源生成
一条泥憨鱼44 分钟前
AI Agent 安全实践:从 MCP 工具调用到 Java 权限校验
java·人工智能·安全
Nebula_g1 小时前
云禾外卖补充—项目整体后端运行逻辑-对流程的更深层次理解
java·开发语言·网络·数据库·状态模式·javase
萧瑟余晖1 小时前
Spring Security 6.x新特性与架构演进详解
java·spring·架构
\光辉岁月/1 小时前
1.Object类
java·面向对象·object类
鸽鸽程序猿1 小时前
【项目】【在线判题系统】公共功能
java·spring boot·maven
一只笨菜鸟1 小时前
IDEA如何让多个项目同时显示
java·ide·intellij-idea