LINQ to XML 轴概述

创建 XML 树或将 XML 文档加载到 XML 树后,可以查询它以查找元素和属性并检索其值。 通过 轴方法(也称为 )检索集合。 在XElementXDocument类中的某些轴是返回IEnumerable<T>集合的方法。 另一些轴是 Extensions 类中的扩展方法。 实现为扩展方法的轴对集合进行操作,然后返回集合。

XElement 类概述中所述,对象 XElement 表示单个元素节点。 元素的内容可能很复杂(有时称为结构化内容),也可以是一个简单的元素。 简单元素可以是空元素,也可以包含值。 如果节点包含结构化内容,则可以使用各种轴方法检索子代元素的枚举。 最常用的轴方法是 ElementsDescendants

除了返回集合的轴方法之外,还有两种在 LINQ to XML 查询中常用的方法。 Element 方法返回单个 XElementAttribute 方法返回单个 XAttribute

出于多种目的,LINQ 查询提供了最强大的方法来检查树、从树中提取数据以及对其进行转换。 LINQ 查询在实现 IEnumerable<T> 的对象上运行,而 LINQ to XML 轴返回 IEnumerable<T> 集合的 XElementIEnumerable<T> 集合的 XAttribute。 需要使用这些集合来进行查询。

除了可以检索元素和属性集合的轴方法之外,还有一些轴方法可以让你更加详细地遍历树。 例如,可以使用树的节点,而不是处理元素和属性。 节点比元素和属性更精细的粒度级别。 使用节点时,可以检查 XML 注释、文本节点、处理指令等。 例如,此功能对于正在编写字处理器并希望将文档另存为 XML 的人员非常重要。 但是,大多数 XML 程序员主要关注元素、属性及其值。

检索元素集合的方法

下面是XElement类(或其基类)的方法摘要,这些是你在XElement上调用以返回元素集合的方法。

方法 DESCRIPTION
XNode.Ancestors 返回此元素的上级的 IEnumerable<T>XElement。 重载方法返回上级的 IEnumerable<T>XElement,这些上级具有指定的 XName
XContainer.Descendants 返回此元素的子代的 IEnumerable<T>XElement。 重载方法返回子代的 IEnumerable<T>XElement,这些子代具有指定的 XName
XContainer.Elements 返回此元素的子元素的 IEnumerable<T>XElement。 重载方法返回子元素的 IEnumerable<T>XElement,这些子元素具有指定的 XName
XNode.ElementsAfterSelf 返回此元素之后的元素的 IEnumerable<T>XElement。 重载方法返回此元素之后的元素的 IEnumerable<T>XElement,此元素之后的这些元素具有指定的 XName
XNode.ElementsBeforeSelf 返回此元素之前的元素的 IEnumerable<T>XElement。 重载方法返回此元素之前的元素的 IEnumerable<T>XElement,此元素之前的这些元素具有指定的 XName
XElement.AncestorsAndSelf 返回此元素及其上级的 IEnumerable<T>XElement。 重载方法返回元素的 IEnumerable<T>XElement,这些元素具有指定的 XName
XElement.DescendantsAndSelf 返回此元素及其子代的 IEnumerable<T>XElement。 重载方法返回元素的 IEnumerable<T>XElement,这些元素具有指定的 XName

检索单个元素的方法

以下方法从对象 XElement 中获取单个子对象。

方法 DESCRIPTION
XContainer.Element 返回具有指定XElement的第一个子XName对象。

检索属性集合的方法

以下方法从对象 XElement 中检索属性。

方法 DESCRIPTION
XElement.Attributes 返回所有属性的 IEnumerable<T>XAttribute

检索单个属性的方法

以下方法从对象中检索单个 XElement 属性。

方法 DESCRIPTION
XElement.Attribute 返回具有指定 XAttributeXName