Partager via


Vue d’ensemble des axes LINQ to XML

Après avoir créé une arborescence XML ou chargé un document XML dans une arborescence XML, vous pouvez l'interroger pour rechercher des éléments et des attributs et récupérer leurs valeurs. Vous pouvez récupérer des collections via les méthodes d’axe, également appelées axes. Certains des axes sont des méthodes dans les classes XElement et XDocument qui retournent des collections IEnumerable<T>. Certains axes sont des méthodes d'extension dans la classe Extensions. Les axes qui sont implémentés en tant que méthodes d’extension opèrent sur des collections et retournent des collections.

Comme décrit dans Vue d’ensemble de la classe XElement, un objet XElement représente un nœud à un seul d’élément. Le contenu de l'élément peut être complexe (parfois appelé contenu structuré) ou il peut s'agir d'un simple élément. Un élément simple peut être vide ou peut contenir une valeur. Si le nœud contient du contenu structuré, vous pouvez utiliser les différentes méthodes d'axe pour récupérer des énumérations d'éléments descendants. Les méthodes d'axe les plus couramment utilisées sont Elements et Descendants.

Outre les méthodes d’axe, qui retournent des collections, il existe deux autres méthodes que vous utilisez fréquemment dans les requêtes LINQ to XML. La méthode Element retourne un seul objet XElement. La méthode Attribute retourne un seul objet XAttribute.

Pour de nombreux scénarios, les requêtes LINQ constituent la manière la plus puissante d'examiner une arborescence, d'en extraire des données et de la transformer. Les requêtes LINQ opèrent sur des objets qui implémentent IEnumerable<T>, et les axes LINQ to XML retournent des collections IEnumerable<T> de XElement et IEnumerable<T> de XAttribute. Vous avez besoin de ces collections pour effectuer vos requêtes.

Outre les méthodes d’axe qui récupèrent des collections d’éléments et d’attributs, il existe des méthodes d’axe qui vous permettent d’itérer au sein de l’arborescence en détail. Par exemple, au lieu de travailler au niveau des éléments et des attributs, vous pouvez travailler avec les nœuds de l'arborescence. Les nœuds représentent un niveau de granularité plus élevé que les éléments et les attributs. Lorsque vous travaillez avec des nœuds, vous pouvez examiner les commentaires XML, les nœuds de texte, les instructions de traitement, et bien plus encore. Cette fonctionnalité est importante, par exemple pour quelqu'un qui écrit un traitement de texte et qui souhaite enregistrer des documents au format XML. Toutefois, la plupart des programmeurs XML sont principalement concernés par les éléments, les attributs et leurs valeurs.

Méthodes pour récupérer une collection d'éléments

Voici un récapitulatif des méthodes de la classe XElement (ou de ses classes de base) que vous appelez sur un objet XElement pour retourner une collection d'éléments.

Méthode Description
XNode.Ancestors Retourne un objet IEnumerable<T> de XElement des ancêtres de cet élément. Une surcharge retourne un objet IEnumerable<T> de XElement des ancêtres qui ont l'objet XName spécifié.
XContainer.Descendants Retourne un objet IEnumerable<T> de XElement des descendants de cet élément. Une surcharge retourne un objet IEnumerable<T> de XElement des descendants qui ont l'objet XName spécifié.
XContainer.Elements Retourne un objet IEnumerable<T> de XElement des éléments enfants de cet élément. Une surcharge retourne un objet IEnumerable<T> de XElement des éléments enfants qui ont l'objet XName spécifié.
XNode.ElementsAfterSelf Retourne un objet IEnumerable<T> de XElement des éléments enfants placés après cet élément. Une surcharge retourne un objet IEnumerable<T> de XElement des éléments après cet élément qui ont l'objet XName spécifié.
XNode.ElementsBeforeSelf Retourne un objet IEnumerable<T> de XElement des éléments enfants placés avant cet élément. Une surcharge retourne un objet IEnumerable<T> de XElement des éléments avant cet élément qui ont l'objet XName spécifié.
XElement.AncestorsAndSelf Retourne un objet IEnumerable<T> de XElement de cet élément et de ces ancêtres. Une surcharge retourne un objet IEnumerable<T> de XElement des éléments qui ont l'objet XName spécifié.
XElement.DescendantsAndSelf Retourne un objet IEnumerable<T> de XElement de cet élément et de ces descendants. Une surcharge retourne un objet IEnumerable<T> de XElement des éléments qui ont l'objet XName spécifié.

Méthode pour récupérer un seul élément

La méthode suivante récupère un seul enfant à partir d'un objet XElement.

Méthode Description
XContainer.Element Retourne le premier objet XElement enfant qui a l'objet XName spécifié.

Méthode pour récupérer une collection d'attributs

La méthode suivante récupère des attributs à partir d'un objet XElement.

Méthode Description
XElement.Attributes Retourne un objet IEnumerable<T> de XAttribute de tous les attributs.

Méthode pour récupérer un seul attribut

La méthode suivante récupère un seul attribut à partir d'un objet XElement.

Méthode Description
XElement.Attribute Retourne l'objet XAttribute qui a l'objet XName spécifié.