Extensions.Descendants Méthode

Définition

Retourne une collection d'éléments qui contient les éléments descendants de tous les éléments et tous les documents de la collection source.

Surcharges

Descendants<T>(IEnumerable<T>, XName)

Retourne une collection d'éléments filtrée qui contient les éléments descendants de tous les éléments et tous les documents de la collection source. Seuls les éléments avec un XName correspondant sont inclus dans la collection.

Descendants<T>(IEnumerable<T>)

Retourne une collection d'éléments qui contient les éléments descendants de tous les éléments et tous les documents de la collection source.

Remarques

Visual Basic utilisateurs peuvent utiliser l’axe descendant XML intégré pour récupérer les éléments descendants d’une collection. Toutefois, l’axe intégré récupère uniquement les descendants avec un nom spécifié. Si Visual Basic utilisateurs souhaitent récupérer tous les descendants, ils doivent utiliser cette méthode d’axe explicitement.

Cette méthode utilise l'exécution différée.

Descendants<T>(IEnumerable<T>, XName)

Retourne une collection d'éléments filtrée qui contient les éléments descendants de tous les éléments et tous les documents de la collection source. Seuls les éléments avec un XName correspondant sont inclus dans la collection.

C#
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> Descendants<T> (this System.Collections.Generic.IEnumerable<T> source, System.Xml.Linq.XName name) where T : System.Xml.Linq.XContainer;
C#
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> Descendants<T> (this System.Collections.Generic.IEnumerable<T?> source, System.Xml.Linq.XName? name) where T : System.Xml.Linq.XContainer;

Paramètres de type

T

Type des objets de source, contraint par XContainer.

Paramètres

source
IEnumerable<T>

IEnumerable<T> de XContainer qui contient la collection source.

name
XName

XName à mettre en correspondance.

Retours

IEnumerable<XElement>

IEnumerable<T> de XElement qui contient les éléments descendants de tous les éléments et tous les documents de la collection source. Seuls les éléments avec un XName correspondant sont inclus dans la collection.

Exemples

L’exemple suivant récupère une collection de deux éléments, puis récupère une collection de tous les descendants des deux éléments qui ont le nom d’élément spécifié.

C#
XElement xmlTree = XElement.Parse(  
@"<Root>  
    <Para>  
        <t>This is some text </t>  
        <b>  
            <t>where</t>  
        </b>  
        <t> all of the text nodes must be concatenated. </t>  
    </Para>  
    <Para>  
        <t>This is a second sentence.</t>  
    </Para>  
</Root>");  

string str =  
    (from el in xmlTree.Elements("Para").Descendants("t")  
    select (string)el)  
    .Aggregate(new StringBuilder(),  
        (sb, i) => sb.Append(i),  
        sb => sb.ToString());  

Console.WriteLine(str);  

Cet exemple produit la sortie suivante :

This is some text where all of the text nodes must be concatenated. This is a second sentence.  

Voici le même exemple, mais dans ce cas, le xml se trouve dans un espace de noms. Pour plus d’informations, consultez Utiliser des espaces de noms XML.

C#
XNamespace aw = "http://www.adventure-works.com";  
XElement xmlTree = XElement.Parse(  
@"<Root xmlns='http://www.adventure-works.com'>  
    <Para>  
        <t>This is some text </t>  
        <b>  
            <t>where</t>  
        </b>  
        <t> all of the text nodes must be concatenated. </t>  
    </Para>  
    <Para>  
        <t>This is a second sentence.</t>  
    </Para>  
</Root>");  

string str =  
    (from el in xmlTree.Elements(aw + "Para").Descendants(aw + "t")  
     select (string)el)  
    .Aggregate(new StringBuilder(),  
        (sb, i) => sb.Append(i),  
        sb => sb.ToString());  

Console.WriteLine(str);  

Cet exemple produit la sortie suivante :

This is some text where all of the text nodes must be concatenated. This is a second sentence.  

Remarques

Visual Basic utilisateurs peuvent utiliser les axes intégrés au langage dans Visual Basic (LINQ to XML) au lieu d’utiliser explicitement cette méthode d’axe.

Cette méthode utilise l'exécution différée.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Descendants<T>(IEnumerable<T>)

Retourne une collection d'éléments qui contient les éléments descendants de tous les éléments et tous les documents de la collection source.

C#
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> Descendants<T> (this System.Collections.Generic.IEnumerable<T> source) where T : System.Xml.Linq.XContainer;
C#
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> Descendants<T> (this System.Collections.Generic.IEnumerable<T?> source) where T : System.Xml.Linq.XContainer;

Paramètres de type

T

Type des objets de source, contraint par XContainer.

Paramètres

source
IEnumerable<T>

IEnumerable<T> de XContainer qui contient la collection source.

Retours

IEnumerable<XElement>

IEnumerable<T> de XElement qui contient les éléments descendants de tous les éléments et tous les documents de la collection source.

Exemples

L’exemple suivant récupère une collection d’éléments, puis utilise cette méthode d’axe pour récupérer tous les éléments décroissants de chaque élément dans la collection d’éléments.

C#
XElement xmlTree = XElement.Parse(  
@"<Root>  
    <Para>  
        <t>This is some text </t>  
        <b>  
            <t>where</t>  
        </b>  
        <t> all of the nodes must be concatenated. </t>  
    </Para>  
    <Para>  
        <t>This is a second sentence.</t>  
    </Para>  
</Root>");  

IEnumerable<XElement> elList =  
    from el in xmlTree.Elements("Para").Descendants()  
    select el;  

foreach (XElement el in elList)  
    Console.WriteLine(el);  

Cet exemple produit la sortie suivante :

<t>This is some text </t>  
<b>  
  <t>where</t>  
</b>  
<t>where</t>  
<t> all of the nodes must be concatenated. </t>  
<t>This is a second sentence.</t>  

Voici le même exemple, mais dans ce cas, le xml se trouve dans un espace de noms. Pour plus d’informations, consultez Utiliser des espaces de noms XML.

C#
XNamespace aw = "http://www.adventure-works.com";  
XElement xmlTree = XElement.Parse(  
@"<Root xmlns='http://www.adventure-works.com'>  
    <Para>  
        <t>This is some text </t>  
        <b>  
            <t>where</t>  
        </b>  
        <t> all of the nodes must be concatenated. </t>  
    </Para>  
    <Para>  
        <t>This is a second sentence.</t>  
    </Para>  
</Root>");  

IEnumerable<XElement> elList =  
    from el in xmlTree.Elements(aw + "Para").Descendants()  
    select el;  

foreach (XElement el in elList)  
    Console.WriteLine(el);  

Cet exemple produit la sortie suivante :

<t xmlns="http://www.adventure-works.com">This is some text </t>  
<b xmlns="http://www.adventure-works.com">  
  <t>where</t>  
</b>  
<t xmlns="http://www.adventure-works.com">where</t>  
<t xmlns="http://www.adventure-works.com"> all of the nodes must be concatenated. </t>  
<t xmlns="http://www.adventure-works.com">This is a second sentence.</t>  

Remarques

Visual Basic utilisateurs peuvent utiliser l’axe descendant XML intégré pour récupérer les éléments descendants d’une collection. Toutefois, l’axe intégré récupère uniquement les descendants avec un nom spécifié. Si Visual Basic utilisateurs souhaitent récupérer tous les descendants, ils doivent utiliser cette méthode d’axe explicitement.

Cette méthode utilise l'exécution différée.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0