.NET中如何使用LINQ to XML操作XML

来源:这里教程网 时间:2026-02-21 17:29:36 作者:

LINQ to XML 是 .NET 中一种轻量且直观的操作 XML 的方式,它结合了 LINQ 的查询能力与 XML 文档的内存表示,让创建、读取、修改和保存 XML 变得非常简洁。下面介绍如何使用 LINQ to XML 进行常见操作。

创建 XML 文档

使用 XElementXDocument 可以轻松构建 XML 结构。

XElement 表示一个 XML 元素,可以嵌套其他元素 XDocument 包含 XML 声明、文档类型等信息,可选使用

示例:创建一个简单的书籍列表

XElement books = new XElement("Books",
    new XElement("Book",
        new XAttribute("Id", "1"),
        new XElement("Title", "C# 编程指南"),
        new XElement("Author", "张三")
    ),
    new XElement("Book",
        new XAttribute("Id", "2"),
        new XElement("Title", "深入理解 LINQ"),
        new XElement("Author", "李四")
    )
);

调用

books.ToString()
即可输出格式化后的 XML 字符串。

读取和查询 XML

使用 LINQ 查询语法或方法语法可以从 XML 中提取数据。

假设已有上面创建的

books
对象:

var query = from book in books.Elements("Book")
            where (string)book.Element("Author") == "张三"
            select (string)book.Element("Title");
<p>foreach (string title in query)
{
Console.WriteLine(title);
}

也可以用方法语法:

var titles = books.Elements("Book")
                   .Where(b => b.Element("Author")?.Value == "张三")
                   .Select(b => b.Element("Title")?.Value);

注意使用 ?. 操作符防止空引用异常。

修改 XML 内容

LINQ to XML 支持直接修改元素值、属性或结构。

修改元素值:
element.Value = "新值"
修改属性:
element.SetAttributeValue("name", "new value")
添加子元素:
element.Add(new XElement("NewChild", "内容"))
删除元素:
element.Remove()

示例:为第一本书添加页数

var firstBook = books.Elements("Book").First();
firstBook.Add(new XElement("Pages", 500));

加载和保存 XML 文件

从文件读取 XML 使用

XElement.Load()
XDocument.Load()

XElement loadedBooks = XElement.Load("books.xml");

将 XML 保存到文件:

books.Save("output.xml");

支持路径字符串或

Stream
,也支持异步加载/保存(.NET 4.0+)。

基本上就这些。LINQ to XML 让处理 XML 像操作对象一样自然,适合中小规模数据场景。不复杂但容易忽略细节,比如大小写敏感、命名空间处理等,使用时注意一致性。

相关推荐