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)
    
  • 相关阅读:
    【leetcode】416. Partition Equal Subset Sum
    【leetcode】893. Groups of Special-Equivalent Strings
    【leetcode】892. Surface Area of 3D Shapes
    【leetcode】883. Projection Area of 3D Shapes
    【leetcode】140. Word Break II
    【leetcode】126. Word Ladder II
    【leetcode】44. Wildcard Matching
    【leetcode】336. Palindrome Pairs
    【leetcode】354. Russian Doll Envelopes
    2017.12.22 英语面试手记
  • 原文地址:https://www.cnblogs.com/xueyubao/p/11262320.html
Copyright © 2011-2022 走看看