zoukankan      html  css  js  c++  java
  • c# 操作xml文件

    1. xml操作

      xml使用注意

      xml文件头 <?xml version="1.0" encoding="utf-8" ?> 
      字符转义 <age><![CDATA[<18>]]></age>  
      xml严格区分大小写,只能有一个跟节点,属性值必须使用双引号
      

      写入xml文件

      XmlDocument形式
          XmlDocument xml = new XmlDocument(); // 创建xml文档对象
          xml.AppendChild(xml.CreateXmlDeclaration("1.0", "utf-8", null)); // 创建文件头
          var student = xml.CreateElement("Student"); // 创建子节点
          student.Attributes.Append(xml.CreateAttribute("id")).Value = 1.ToString(); // 创建属性
          student.InnerText = "小红"; // 创建文本节点
          xml.AppendChild(xml.CreateElement("Class").AppendChild(student)); // 创建根元素
          xml.Save("test.xml"); // 保存xml
      XDocument形式(linq to xml)
          XDocument xd = new XDocument(); // 创建xml文本对象
          xd.Declaration = new XDeclaration("1.0", "utf-8", null); // 添加文件头
          var root = new XElement("Test"); // 添加根元素
          var student = new XElement("Student");
          student.SetAttributeValue("id", 1.ToString());
          student.AddFirst(new XText("小明"));
          root.Add(student);
          xd.Add(root);
          xd.Save("text.xml");
      

      读取xml文件

      XmlDocument形式
          XmlDocument xd = new XmlDocument();
          xd.Load("text.xml");
          XmlElement root = xd.DocumentElement; // 读取根节点
          XmlNodeList nodes = root.GetElementsByTagName("Student"); // 获取子节点
      XDocument形式
          XDocument xd = XDocument.Load("test.xml");
          XElement root = xd.Root; // 读取根节点
          IEnumerable nodes = root.Elements("Student");
          IEnumerable nodes = xd.Root.Elements().Where(item => int.Parse(item.Attribute("id").Value) > 2);
      

      XPath应用

      Xpath写法
          /persons/person 表示查找根节点persons下面的所有person子节点
          //person 表示递归查找,相当于全文搜索
          //person/Name 找所有person节点下面的Name节点
          //person/* 找所有person下的所有子节点
          //* 找所有节点
          /persons/person[1] 找第一个person
          /persons/person[last()] 找最后一个
          //@id 查找属性节点
          //person[@id] 找具有id的person节点
          //Name[not(@*)] 找不包含属性的Name节点
          //person[@id='1'] 找id是1的person节点
          //person[normalize-space(@id)='1'] 找id是1的person节点(去掉id属性值空格之后的)
          //*[count(person)=3] 找包含3个person的父节点
          //*[starts-with(name(),'N')] 选择标签名以N开头的元素
          //*[contains(name(),'a')] 选择标签名包含a的元素
          //*[string-length(name()) = 3] 获取标签名的长度是3的元素
          //Name | //Age 获取Name和Age节点
      使用xpath方式 XmlNodeList nodes = xd.SelectNodes("//person[@id='1']");
      
  • 相关阅读:
    jquery ui draggable,droppable 学习总结
    VSCode设置网页代码实时预览
    ionic3-修改APP应用图标(icon)和APP启动界面(Splash)
    Ionic3页面的生命周期
    videogular2 在ionic3项目里报错(rxjs_1.fromEvent is not a function)
    IDEA的maven项目的netty包的导入(其他jar同)
    maven的安装与项目的创建
    给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
    使用二分法查询二维整型数组的值(找到返回其坐标)
    乐观锁以及悲观锁
  • 原文地址:https://www.cnblogs.com/ye-hcj/p/8185778.html
Copyright © 2011-2022 走看看