LINQ to XML 轴概述

更新:November 2007

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

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

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

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

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

用于检索元素集合的方法

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

方法

说明

XNode.Ancestors

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

XContainer.Descendants

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

XContainer.Elements

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

XNode.ElementsAfterSelf

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

XNode.ElementsBeforeSelf

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

XElement.AncestorsAndSelf

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

XElement.DescendantsAndSelf

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

用于检索单个元素的方法

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

方法

说明

XContainer.Element

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

用于检索属性集合的方法

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

方法

说明

XElement.Attributes

返回所有属性的 XAttributeIEnumerable<T>

用于检索单个属性的方法

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

方法

说明

XElement.Attribute

返回具有指定 XNameXAttribute

请参见

概念

LINQ to XML 轴