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("有张三");
    }
}
相关推荐
一直不明飞行3 小时前
Java的equals(),hashCode()应该在什么时候重写
java·开发语言·jvm
REDcker3 小时前
有限状态机与状态模式详解 FSM建模Java状态模式与C++表驱动模板实践
java·c++·状态模式
你的保护色3 小时前
【无标题】
java·服务器·网络
曹牧3 小时前
C# WinForms应用程序中展示JSON内容
c#
basketball6164 小时前
C++ 构造函数完全指南:从入门到进阶
java·开发语言·c++
淘矿人4 小时前
Claude辅助DevOps实践
java·大数据·运维·人工智能·算法·bug·devops
小江的记录本4 小时前
【Java基础】泛型:泛型擦除、通配符、上下界限定(附《思维导图》+《面试高频考点清单》)
java·数据结构·后端·mysql·spring·面试·职场和发展
来恩10034 小时前
请求转发与响应重定向的使用
java
@杰克成5 小时前
Java学习30
java·开发语言·学习
次元工程师!5 小时前
LangFlow开发(三)—Bundles组件架构设计(3W+字详细讲解)
java·前端·python·低代码·langflow