zoukankan      html  css  js  c++  java
  • C#中使用XML存储数据

    创建XML文档

    首先引用System.Xml命名空间

    1.初始化一个实例

    XmlDocument xd = new XmlDocument();
    

    2.创建XML头文件声明

    XmlDeclaration xdt = xd.CreateXmlDeclaration("1.0", "utf-8", null);
    xd.AppendChild(xdt);
    

    3.创建唯一根节点

    XmlElement Students = xd.CreateElement("Students");
    

    4.给根节点添加属性(也可以不添加)

    Students.SetAttribute("name", "学生信息");
    

    5.将根节点加入到XML文件中

    xd.AppendChild(Students);
    

    6.创建二级节点

    XmlElement student = xd.CreateElement("student");
    student.SetAttribute("stuNum", "100100100");
    Students.AppendChild(student);
    

    7.给二级节点填充值

    XmlElement name = xd.CreateElement("name");
    name.InnerText = "小明";
    XmlElement sex = xd.CreateElement("sex");
    sex.InnerText = "男";
    student.AppendChild(name);
    student.AppendChild(sex);
    

    8.保存

    xd.Save("StuMS.xml");
    

    9.结果

    <?xml version="1.0" encoding="utf-8"?>
    <Students name="学生信息">
      <student stuNum="100100100">
        <name>小明</name>
        <sex>男</sex>
      </student>
    </Students>
    

    读取XML文档里的信息

    首先要先加载XML文档

    XmlDocument xd = new XmlDocument();
    xd.Load("StuMS.xml");
    

    1.利用索引器读取

    //查找标签值
    string Name = stuNode.ChildNodes[0].InnerText;
    //查找标签属性
    string StuNum = stuNode.Attributes[0].Value;
    

    2.利用Xpath查询

    // 常用查询方式
    //1. "根节点/父节点/子节点"
    //2. "//节点"
    //3. "根节点/父节点[@父节点属性 = 'value' ]"
    //4. "根节点/父节点[子节点 = 'value' ]"
    
    XmlNode stuNode = xd.SelectSingleNode("Students/student[@stuNum =" + stuNum + "]");//可以获得指定stuNum的一个节点
    XmlNodeList stuNodeList = xd.SelectNodes("Students/student[sex = '男' ]");//可以获得指定性别的集合
    

    修改XML文档里的信息

    找到->修改->保存

    //节点信息修改
    stuNode.SelectSingleNode("name").InnerText = value;
    stuNode.SelectSingleNode("name").InnerXml = value;
    //属性信息修改
    student.Attributes["stuNum"].Value = value;
    

    InnerText只显示内容小明 男
    InnerXml将标签一同显示出来 <name>小明</name><sex>男</sex>

    删除XML文档里的信息

    //从当前节点获取父节点,从父节点删除当前节点
    stuNode.ParentNode.RemoveChild(studentNode);
    //从父节点直接删除子节点
    stuNode.RemoveChild(studentNode)
    
  • 相关阅读:
    ERROR: Cannot set priority of registrydns process 33740
    Hbase和Phoenix部署-单机版
    ambari安装hdp时,新建的ambari-hdp-1.repo中baseurl无值
    centos7.2升级openssh到8.0
    kafka一个broker挂掉无法写入
    对cdh搭建过程错误总结及解决方法
    streamsets
    [Spark]Task not serializable
    [Kafka]How to Clean Topic data
    Postgresql Master/Slaver
  • 原文地址:https://www.cnblogs.com/xueyubao/p/11262320.html
Copyright © 2011-2022 走看看