LINQ to XML 轴概述

创建 XML 树或将 XML 文档加载到 XML 树之后,可以进行查询,从而查找元素和属性并检索它们的值。 您通过轴方法(也叫做“轴”)来检索集合。 一些轴就是 XElementXDocument 类中返回 IEnumerable 集合的方法。 另一些轴是 Extensions 类中的扩展方法。 实现为扩展方法的轴对集合进行操作,然后返回集合。

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

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

对于很多应用来说,LINQ 查询提供了检查树、从树中提取数据以及转换树的最有效的方法。 LINQ 查询对实现 IEnumerable 的对象进行操作,LINQ to XML 轴返回 Xelement 集合的 IEnumerable 以及 XAttribute 集合的 IEnumerable。 需要使用这些集合来执行查询。

除了检索元素和属性集合的轴方法之外,还有一些轴方法可以十分详尽地循环访问树。 例如,可以处理树的节点,而不是处理元素和属性。 节点比元素和属性有更细的粒度。 处理节点时,可以检查 XML 注释、文本节点、处理指令以及其他方面。 该功能很重要,例如对正在编写字处理器并希望将文档保存为 XML 的用户非常有用。 但是,大部分 XML 程序员主要关心的是元素、属性和它们的值。

用于检索元素集合的方法

下面是 XElement 类(或其基类)的方法汇总,您可以对 XElement 调用这些方法以返回元素集合。

方法

描述

XNode.Ancestors

返回此元素的上级的 XElementIEnumerable。 重载方法返回上级的 XElementIEnumerable,这些上级具有指定的 XName

XContainer.Descendants

返回此元素的子代的 XElementIEnumerable。 重载方法返回子代的 XElementIEnumerable,这些子代具有指定的 XName

XContainer.Elements

返回此元素的子元素的 XElementIEnumerable。 重载方法返回子元素的 XElementIEnumerable,这些子元素具有指定的 XName

XNode.ElementsAfterSelf

返回此元素之后的元素的 XElementIEnumerable。 重载方法返回此元素之后的元素的 XElementIEnumerable,此元素之后的这些元素具有指定的 XName

XNode.ElementsBeforeSelf

返回此元素之前的元素的 XElementIEnumerable。 重载方法返回此元素之前的元素的 XElementIEnumerable,此元素之前的这些元素具有指定的 XName

XElement.AncestorsAndSelf

返回此元素及其上级的 XElementIEnumerable。 重载方法返回元素的 XElementIEnumerable,这些元素具有指定的 XName

XElement.DescendantsAndSelf

返回此元素及其子代的 XElementIEnumerable。 重载方法返回元素的 XElementIEnumerable,这些元素具有指定的 XName

用于检索单个元素的方法

下面的方法从 XElement 对象中检索单个子级。

方法

描述

XContainer.Element

返回具有指定 XName 的第一个子 XElement 对象。

用于检索属性集合的方法

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

方法

描述

XElement.Attributes

返回所有属性的 XAttributeIEnumerable

用于检索单个属性的方法

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

方法

描述

XElement.Attribute

返回具有指定 XNameXAttribute

请参见

概念

LINQ to XML 轴