• 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

  • 相关阅读:
    SonarQube系列三、Jenkins集成SonarQube(dotnetcore篇)
    SonarQube系列二、分析dotnet core/C#代码
    SonarQube系列一、Linux安装与部署
    asp.net core 集成JWT(二)token的强制失效,基于策略模式细化api权限
    asp.net core 集成JWT(一)
    visual studio 各版本激活码
    服务网关Ocelot 入门Demo系列(01-Ocelot极简单Demo及负载均衡的配置)
    一人撸PaaS之“应用”
    使用Roslyn脚本化C#代码,C#动态脚本实现方案
    try.dot.net 的正确使用姿势
  • 原文地址:https://www.cnblogs.com/gaohongchen01/p/4788504.html
Copyright © 2020-2023  润新知