• 对xml的操作使用的类XElement的使用


    操作xml的类比较多,发现XElement类操作xml极其方便,下面列举一些操作方法

    1、创建xml

                XElement xml = new XElement("root", 
                    new XElement("Parent", 
                        new XElement("Me",
                            new XElement("son"),
                            new XElement("daughter")
                    )));

    2、用Lambda表达式

                List<string> list = new List<string>(){
                    "Parent","Me","son"
                };
    
                XElement xml=new XElement("root",
                    list.Select(x=>new XElement(x))
                    );
    
                Console.WriteLine(xml);
                Dictionary<string, string> dic = new Dictionary<string, string>();
                dic.Add("Name", "zhangsan");
                dic.Add("Sex", "");
                dic.Add("Age", "18");
                XElement xml=new XElement("root",
                    dic.Select(x=>new XElement(x.Key,x.Value))
                    );
    
                Console.WriteLine(xml);

    3、用字符串创建 ,这种我认为最为简单

                string str = "<Parent><Me>张三</Me></Parent>";
                XElement xml = XElement.Parse(str);
    
                Console.WriteLine(xml);

    4、属性

                XElement xml = new XElement("students", 
                    new XElement("student", 
                        new XAttribute("id", "1"), 
                        new XElement("name", "张三"), 
                        new XElement("age", 12)));
                string str = "<students><student id="1"><name>张三</name><age>12</age></student></students>";
                XElement xml = XElement.Parse(str);
    
                Console.WriteLine(xml);

    5、保存 xml

                string str = "<students><student id="1"><name>张三</name><age>12</age></student></students>";
                XElement xml = XElement.Parse(str);
    
                xml.Save("test.xml");

    6、加载

                XElement xml = XElement.Load("test.xml");
                Console.WriteLine(xml);

    7、读取 xml

       
    。。。。。{
    
     XElement xml = XElement.Load("test.xml");
               
                ForXml(xml);
            }
    
            public static void ForXml(XElement x)
            {
                printXml(x);
                foreach (var item in x.Elements())
                {
                    ForXml(item);
                }
            }
            public static void printXml(XElement x)
            {
                if (x == null)
                    return;
                if (x.HasElements)
                {
                    Console.WriteLine(x.Name);
                }
                else
                {
                    Console.WriteLine(x.Name+":"+x.Value);
                }
                foreach (XAttribute attr in x.Attributes())
                {
                    Console.WriteLine("	"+attr.Name+":"+attr.Value);
                }
            }

    8、查找某一值

                XElement xml = XElement.Load("test.xml");
    
                var item = xml.Descendants().Where(x =>
                  {
                      var attr = (int?)x.Attribute("id");
                      if (attr != null)
                      {
                          if (attr.Value == 1)
                              return true;
                      }
                      return false;
                      //if (x.Value == "张三")
                      //{
                      //    return true;
                      //}
                      //else
                      //{
                      //    return false;
                      //}
                  });
                foreach (XElement x in item)
                {
                    ForXml(x);
                }
  • 相关阅读:
    通过system调用Am命令执行动作
    windows中如何在命令行启动启动程序
    UICC 实现框架和数据读写
    软件设计方法(转载)
    好诗欣赏——邀请 The Invitation
    leaflet使用turfjs插件,基于格点数据绘制等值线效果
    深信服防火墙做端口映射
    关于本博客的一些声明
    sqlserver – SQL Server – 包含多个字段的IN子句
    JavaScript Array join() 方法
  • 原文地址:https://www.cnblogs.com/lunawzh/p/6669753.html
Copyright © 2020-2023  润新知