Fork me on GitHub

XML文件操作(C#)

  XML应用于Web开发的许多方面,常用于简化数据的存储和共享,它的设计宗旨是传输数据,而非显示数据。下面简单介绍一下C#是如何对XML文件进行读取的。

1、首先,建立XML对象并关联XML文件

string xmlFileName = "student.xml";

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlFileName);

2、获取到xml文件的根节点

//获取到xml文件的根节点
XmlElement nodeRoot = xmlDoc.DocumentElement;

3、创建新节点

复制代码
//创建一个新节点
XmlElement nodeNew = xmlDoc.CreateElement("student");
//创建新节点的孩子节点
XmlElement nodeNum = xmlDoc.CreateElement("num");
XmlElement nodeName = xmlDoc.CreateElement("name");
XmlElement nodeAge = xmlDoc.CreateElement("age");
//把孩子节点与新节点建立父子关系
nodeNew.AppendChild(nodeNum);
nodeNew.AppendChild(nodeName);
nodeNew.AppendChild(nodeAge);
//创建节点文本,并关联节点
XmlText txtNum = xmlDoc.CreateTextNode("001");
XmlText txtName = xmlDoc.CreateTextNode("张三");
XmlText txtAge = xmlDoc.CreateTextNode("22");
nodeNum.AppendChild(txtNum);
nodeName.AppendChild(txtName);
nodeAge.AppendChild(txtAge);
复制代码

4、添加新建的节点到文件

//添加新建的节点
nodeRoot.AppendChild(nodeNew);//添加到根节点
//nodeRoot.InsertBefore(nodeNew, nodeRoot.FirstChild);//添加到尾部

5、删除节点

if (nodeRoot.HasChildNodes)
{
    nodeRoot.RemoveChild(nodeRoot.FirstChild);//删除首个节点
}

6、遍历节点

复制代码
//遍历student.xml,查看指定节点的age值
XmlNodeList studentList = nodeRoot.SelectNodes("*");
foreach (XmlNode student in studentList)
{               
    if (student.FirstChild.InnerText.Equals("004"))
    {
        XmlNodeList stuChidNodeList = student.SelectNodes("*");
        foreach (XmlNode stuChileNode in stuChidNodeList)
        {
            if (stuChileNode.Name.Equals("age"))
            {
                Console.Write(stuChileNode.InnerText + " ");
            }
        }
        Console.WriteLine();
        break;
    }
    else
    {
        continue;
    }                
}
复制代码

7、保存XML文件

//保存xml
xmlDoc.Save(xmlFileName);

附件:

  实验XML文件(student.xml)

复制代码
<?xml version="1.0" encoding="utf-8"?>
<!--学生根节点-->
<students>
  <student class="clss1">
    <num>002</num>
    <name>hello2</name>
    <age>22</age>
  </student>
  <student class="clss2">
    <num>003</num>
    <name>hello3</name>
    <age>88</age>
  </student>
  <student>
    <num>004</num>
    <name>faf</name>
    <age>43</age>
  </student>
  <student>
    <num>005</num>
    <name>新人</name>
    <age>22</age>
  </student>
  <student>
    <num>006</num>
    <name>新人</name>
    <age>22</age>
  </student>
  <student>
    <num>001</num>
    <name>张三</name>
    <age>22</age>
  </student>
  <student>
    <num>001</num>
    <name>张三</name>
    <age>22</age>
  </student>
</students>
student.xml
复制代码

相关链接:

  XML基础教程:http://www.w3school.com.cn/xml/index.asp

posted @   晨光iABC  阅读(5070)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示