zoukankan      html  css  js  c++  java
  • C#

    XML

    1.介绍

    eXtensible Markup Language (可扩展标记语言)

    Xml就是用一种格式化的方式来存储数据,并且是文本文件。

    Xml要求所有的标记必须成对出现,必须有一个根节点且只有一个,区分大小写。

    2. 通过C#创建

    注意:如果想要通过DataSet读取XMl,则根节点下所有子节点名称必须一致。

       XDocument doc = new XDocument();
       // 1.创建声明节点,也可不写,会自动生成
       //XDeclaration des = new XDeclaration("1.0","utf-8","yes");
       //doc.Declaration = des;
       // 2.创建根节点
       XElement root = new XElement("Users");
       doc.Add(root);
    
       // 3.创建子节点并设置子节点属性,向子节点中添加节点
       XElement user1 = new XElement("User");//子节点名称
       user1.SetAttributeValue("Id", 1);
       XElement name1 = new XElement("Name","Name1");
       XElement age1 = new XElement("Age","18");
       user1.Add(name1, age1);
    
       XElement user2 = new XElement("User"); //子节点名称
       user2.SetAttributeValue("Id", 1);
       XElement name2 = new XElement("Name","Name2");
       XElement age2= new XElement("Age","19");
       user2.Add(name2, age2);
    
       root.Add(user1, user2); //4.将子节点添加根节点之下
       doc.Save("Test.xml");
    
       var ds = new DataSet();
       ds.ReadXml("Test.xml");
       this.dgv.DataSource = ds.Tables[0];
    
    

    结果:

    <?xml version="1.0" encoding="utf-8"?>
    <Users>
      <User Id="1">
        <Name>Name1</Name>
        <Age>18</Age>
      </User>
      <User Id="2">
        <Name>Name2</Name>
        <Age>19</Age>
      </User>
    </Users>
    

    3.查询

    根据节点属性值查找指定节点。

        var result = from t in doc.Descendants("Usre")  //所有子节点中查找
                     //from t in doc.Root.Elements("User") //根节点下子节点查找
                     where t.Attribute("Id").Value == "2"
                     select new {
                         Name=t.Element("Name").Value,
                         Age=t.Element("Age").Value
                     };
        this.dgv.DataSource = result.ToList();
    

    4.修改和删除

    找到指定节点后直接修改就可以
     var result = from t in doc.Descendants("User")  //所有子节点中查找
                  where t.Attribute("Id").Value == "2"
                  select t;
     result.First().Element("Name").Value = "Name22"; //修改
     result.First().Remove(); //删除
     doc.Save("Test.xml"); //保存
    

    5.读取XML文件

    XDocument doc = XDocument.Load("xml.xml");
    
  • 相关阅读:
    OOP侧边分享按钮
    表格基础操作
    行为型模式之自定义语言的实现(解释器模式)
    行为型模式之请求发送者与接收者解耦(命令模式)
    行为型模式之请求的链式处理(职责链模式)
    Http、Socket、WebSocket之间联系与区别
    日期时间工具类DateTimeUtil(基于Java8的LocalDateTime)
    结构型模式之代理模式
    Java8 函数式接口@FunctionalInterface的使用说明
    结构型模式之实现对象的复用(享元模式)
  • 原文地址:https://www.cnblogs.com/-Tiger/p/8023159.html
Copyright © 2011-2022 走看看