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 类(以及其派生类如 XmlElementXmlDocument 等)。该方法会将指定的节点添加到当前节点的子节点集合的末尾。

创建节点

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("有张三");
    }
}
相关推荐
Yeats_Liao17 分钟前
Spring缓存(二):解决缓存雪崩、击穿、穿透问题
java·spring·缓存
猿究院-赵晨鹤29 分钟前
String、StringBuffer 和 StringBuilder 的区别
java·开发语言
葵野寺38 分钟前
【RelayMQ】基于 Java 实现轻量级消息队列(九)
java·开发语言·rabbitmq·java-rabbitmq
代码不停1 小时前
MySQL联合查询
java·数据库·mysql
nightunderblackcat1 小时前
新手向:C语言、Java、Python 的选择与未来指南
java·c语言·python
纯真时光1 小时前
Maven高级
java
csdn_aspnet2 小时前
MongoDB C# .NetCore 驱动程序 序列化忽略属性
mongodb·c#·.netcore
好多172 小时前
《微服务事务管理》
java·微服务·架构
llp11102 小时前
MQTT Dashboard
java
浪扼飞舟2 小时前
c#基础二(类和对象,构造器调用顺序、访问级别、重写和多态、抽象类和接口)
java·开发语言·c#