zoukankan      html  css  js  c++  java
  • LinqToXml

    1.创建Xml树
         <person id="1">
            <name>Gaby</name>
            <age>12</age>
            <address>GuangZhou</address>
        </person>
        <person id="2">
            <name>Bill</name>
            <age>33</age>
            <address>USA</address>
        </person>
        <person id="3">
            <name>BiLy</name>
            <age>19</age>
            <address>HuNan</address>
        </person>

     如果要创建如上的XML树:

    代码示例:

     XElement xmlTree = new XElement("Root", 

                    new XElement("person", new XElement("name", "Gaby"),
                                                       new XElement("age",18),
                                                       new XElement("address","GuangZhou")), 

                    new XElement("person", new XElement("name", "Lily"),
                                                       new XElement("age",20),
                                                       new XElement("address","USA")),

                    new XElement("person", new XElement("name", "Bill"),
                                                       new XElement("age",55),
                                                       new XElement("address","English"))

                                                    );

                foreach (var item in xmlTree.Elements())

                {

                    Console.WriteLine(item);

                } 

     输出结果:

     

    2.读取XML文件

    有以下XML文件:path:D:\NetDemo\LinqToXml\LinqToXml\XMLFile.xml

    <?xml version="1.0" encoding="utf-8" ?>

    <persons>

        <person id="1">

            <name>Gaby</name>

            <age>16</age>

            <address>GuangZhou</address>

        </person>

        <person id="2">

            <name>Bill</name>

            <age>33</age>

            <address>USA</address>

        </person>

        <person id="3">

            <name>BiLy</name>

            <age>19</age>

            <address>HuNan</address>

        </person>

        <person id="4">

            <name>James</name>

            <age>16</age>

            <address>English</address>

        </person>

    </persons>

    读取方法一:
      XElement xml = XElement.Load(@"D:"NetDemo"LinqToXml"LinqToXml"XMLFile.xml");
               Console.WriteLine("读取XML...");
               foreach (var item in xml.Elements("person"))
               {
                   Console.WriteLine(item.Element("name").Value+""t"
                                   +item.Element("age").Value+""t"
                                   +item.Element("address").Value);
               }

    读取方法二:(查询表达式)
    var persons = from p in xml.Elements("person")
                             select new
                             {
                                 Name = p.Element("name").Value,
                                 Age = p.Element("age").Value,
                                 Address = p.Element("address").Value

                             };

    Console.WriteLine("读取XML..."); 

      foreach (var item in persons)
               {
                   Console.WriteLine(item.Name+"\t"+item.Age+"\t"+item.Address);
               }
    读取方法三:(lambada表达式)
      var persons = xml.Elements("person").Select(p => new{
                                                                        Id=p.Attribute("id").Value,  //读取属性
                                                                        Name = p.Element("name").Value,
                                                                        Age = p.Element("age").Value,
                                                                        Address = p.Element("address").Value
                                                                    }
                                                            );

                foreach (var item in persons)
                {
                    Console.WriteLine(item.Name + ""t" + item.Age + ""t" + item.Address);
                }

     输出结果(相同):


  • 相关阅读:
    区块链价值
    区块链路线图
    Hyperledger Fabric Orderer节点启动
    使用 Docker 部署 Grafana + Prometheus 监控 MySQL 数据库
    CentOS 7.x 安装 Docker-Compose
    关于 Abp 替换了 DryIoc 框架之后的问题
    [Abp 源码分析]十七、ASP.NET Core 集成
    使用 DryIoc 替换 Abp 的 DI 框架
    《CLR Via C#》读书笔记:27.计算限制的异步操作
    《CLR Via C#》读书笔记:26.线程基础
  • 原文地址:https://www.cnblogs.com/ycdx2001/p/1430670.html
Copyright © 2011-2022 走看看