通八洲科技

C# Linq to XML怎么用 Linq查询XML文件方法

日期:2025-12-21 00:00 / 作者:煙雲
LINQ to XML 查询核心是加载 XML 为 XDocument/XElement 后用 Where、Select、Descendants 等方法查询;需注意 Elements 与 Descendants 区别、空引用防护及命名空间声明(如 XNamespace ns = "..."; doc.Descendants(ns + "book"))。

用 LINQ to XML 查询 XML 文件,核心是把 XML 加载成 XDocumentXElement,再用 LINQ 方法(如 WhereSelectDescendants)写查询表达式,语法接近 SQL 但更贴近 C# 对象操作。

加载 XML 数据

先从文件、字符串或流中创建 XDocument 实例:

基础查询:查找子元素和属性

Descendants() 查任意层级的元素,用 Elements() 查直接子元素,属性通过 Attribute("name")?.Value 获取:

组合条件与投影(Select)

可链式调用 Where 过滤 + Select 投影为新对象或匿名类型:

处理命名空间(常见坑)

如果 XML 带命名空间(如 xmlns="http://example.com/ns"),必须声明并使用它,否则查不到元素:

不复杂但容易忽略。关键就三点:正确加载、理解 Descendants/Elements 区别、小心空引用和命名空间。