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("有张三");
    }
}
相关推荐
Goldn.7 小时前
Java核心技术栈全景解析:从Web开发到AI融合
java· spring boot· 微服务· ai· jvm· maven· hibernate
李慕婉学姐8 小时前
【开题答辩过程】以《基于Android的出租车运行监测系统设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·后端·vue
m0_740043738 小时前
SpringBoot05-配置文件-热加载/日志框架slf4j/接口文档工具Swagger/Knife4j
java·spring boot·后端·log4j
编织幻境的妖8 小时前
SQL查询连续登录用户方法详解
java·数据库·sql
kaikaile19958 小时前
基于C#实现一维码和二维码打印程序
开发语言·c#
我不是程序猿儿9 小时前
【C#】画图控件的FormsPlot中的Refresh功能调用消耗时间不一致缘由
开发语言·c#
未若君雅裁9 小时前
JVM面试篇总结
java·jvm·面试
rit84324999 小时前
C# Socket 聊天室(含文件传输)
服务器·开发语言·c#
kk哥88999 小时前
C++ 对象 核心介绍
java·jvm·c++
招风的黑耳9 小时前
我用SpringBoot撸了一个智慧水务监控平台
java·spring boot·后端