首页 关于我们 成功案例 网络营销 电商设计 新闻中心 联系方式
QQ联系
电话联系
手机联系

C#怎么使用LINQ to XML_C# LINQ to XML查询与操作教程

发布时间:2025-11-01 18:05
发布者:网络
浏览次数:
LINQ to XML 提供简洁高效的 XML 处理方式,支持创建、查询、修改和保存 XML 文档。通过 XElement 和 XDocument 可构建或加载 XML,结合 LINQ 语法实现节点查询与投影,支持属性筛选、命名空间处理,并可添加、更新、删除节点后保存到文件,适用于配置管理与数据交换场景。

c#怎么使用linq to xml_c# linq to xml查询与操作教程

LINQ to XML 是 C# 中处理 XML 数据的强大工具,它结合了 LINQ 的查询能力与 XML 文档操作的灵活性。相比传统的 XML 处理方式(如 XmlDocument),LINQ to XML 更加简洁、易读,并支持函数式编程风格。下面介绍如何使用 C# 进行常见的 XML 查询与操作。

创建和加载 XML 文档

你可以从字符串、文件或直接构建的方式创建 XML 文档。

示例:创建一个简单的 XML 文档

XElement books = new XElement("Books",
    new XElement("Book",
        new XAttribute("Id", "1"),
        new XElement("Title", "C# 入门详解"),
        new XElement("Author", "张三"),
        new XElement("Price", "59.80")
    ),
    new XElement("Book",
        new XAttribute("Id", "2"),
        new XElement("Title", "LINQ 实战"),
        new XElement("Author", "李四"),
        new XElement("Price", "68.00")
    )
);

从文件加载 XML

XDocument doc = XDocument.Load("books.xml");

从字符串解析 XML

string xmlStr = @"<Books><Book Id='1'><Title>C# 高级编程</Title></Book></Books>";
XElement root = XElement.Parse(xmlStr);

使用 LINQ 查询 XML 数据

你可以使用标准 LINQ 查询语法筛选和投影 XML 节点。

查询所有书籍标题

var titles = from book in books.Elements("Book")
             select book.Element("Title").Value;
<p>foreach (var title in titles)
{
Console.WriteLine(title);
}</p>

查找价格大于 60 的书籍

var expensiveBooks = from book in books.Elements("Book")
                     let price = double.Parse(book.Element("Price").Value)
                     where price > 60
                     select new
                     {
                         Title = book.Element("Title").Value,
                         Price = price
                     };
<p>foreach (var b in expensiveBooks)
{
Console.WriteLine($"{b.Title}: {b.Price}");
}</p>

通过属性查询特定书籍

短影AI 短影AI

长视频一键生成精彩短视频

短影AI 170 查看详情 短影AI
var bookById = books.Elements("Book")
                    .Where(b => b.Attribute("Id")?.Value == "1")
                    .FirstOrDefault();
<p>if (bookById != null)
{
Console.WriteLine("找到书籍: " + bookById.Element("Title").Value);
}</p>

修改和保存 XML

你可以添加、更新或删除节点,并将结果保存到文件。

添加新书籍

books.Add(new XElement("Book",
    new XAttribute("Id", "3"),
    new XElement("Title", "ASP.NET 核心开发"),
    new XElement("Author", "王五"),
    new XElement("Price", "75.00")
));

更新某本书的价格

var bookToUpdate = books.Elements("Book")
                        .FirstOrDefault(b => b.Element("Title")?.Value == "C# 入门详解");
if (bookToUpdate != null)
{
    bookToUpdate.Element("Price").Value = "55.00";
}

删除某本书

var bookToDelete = books.Elements("Book")
                        .FirstOrDefault(b => (string)b.Attribute("Id") == "2");
bookToDelete?.Remove();

保存到文件

doc.S*e("updated_books.xml"); // 如果是 XDocument
// 或者
books.S*e("new_books.xml");   // 如果是 XElement 且需要根节点

处理命名空间

当 XML 包含命名空间时,查询需显式指定。

XNamespace ns = "http://example.com/books";
var booksWithNs = from book in root.Elements(ns + "Book")
                  select book.Element(ns + "Title").Value;

基本上就这些常用操作。LINQ to XML 让 XML 处理变得直观高效,适合配置文件、数据交换等场景。熟练掌握后能大幅提升开发效率。

以上就是C#怎么使用LINQ to XML_C# LINQ to XML查询与操作教程的详细内容,更多请关注其它相关文章!


# c#  # 工具  # 配置文件  # 字符串解析  # .net  # 你可以  # 文档  # 本书  # 加载  # 不带  # 数据交换  # 适用于  # 相关文章  # 中文网  # 麒麟seo术语详解  # seo 现在 效果  # 网站推广的岗位  # 新华书店营销推广看法  # 短剧推广横屏素材下载网站  # 河池个性化网站建设平台  # 奉贤seo费用  # 直播教育网站建设  # 锅炉网站建设哪家好  # seo付费吗