【LINQ笔记】LINQ操作XML

加载XML

            XElement.Load("c:/1.xml");
            XElement.Parse("<Persons></Persons>");

查找元素

var l = from n in root3.Elements()
            select new Person { ID = int.Parse(n.Element("ID").Value), Name = n.Element("Name").Value };

构造XML

            var root = new XElement("Persons",
                                        new XElement("Person",
                                            new XElement("ID", 1),
                                            new XElement("Name", "zhangsan")),
                                        new XElement("Person",
                                            new XElement("ID", 2),
                                            new XElement("Name", "lisi")),
                                        new XElement("Person",
                                            new XElement("ID", 3),
                                            new XElement("Name", "wangwu"))
                                            );
            root.Save("c:/1.xml");

list转XML

            var personList = new List<Person> {
                new Person{ ID=1,Name="fan1"},
                new Person{ ID=2,Name="fan2"}
            };
            var root2 = new XElement("Persons",
                    (from p in personList
                     select new XElement("Product", new XAttribute("ID", p.ID),
                                                    new XElement("Name", p.Name)))
                );
            root2.Save("d:/2.xml");

生成XML:

<?xml version="1.0" encoding="utf-8"?>
<Persons>
  <Product ID="1">
    <Name>fan1</Name>
  </Product>
  <Product ID="2">
    <Name>fan2</Name>
  </Product>
</Persons>

DataTable转XML

 DataTable table = GetTable();
            var root3 = new XElement("Persons",
                (from n in table.AsEnumerable()
                 select new XElement("Product", new XElement("ID", n.Field<int>("ID")),
                                                 new XElement("Name", n.Field<string>("Name")))
                 ));
            root3.Save("c:/3.xml");
posted @   .Neterr  阅读(207)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示