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.Returns a collection of elements that contains the descendant elements of every element and document in the source collection.

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.Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. Seuls les éléments avec un XName correspondant sont inclus dans la collection.Only elements that have a matching XName are included in the 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.Returns a collection of elements that contains the descendant elements of every element and document in the source collection.

Remarques

Visual Basic utilisateurs peuvent utiliser l’axe descendant XML intégré pour récupérer les éléments descendants d’une collection.Visual Basic users can use the integrated XML descendant axis to retrieve the descendant elements of a collection. Toutefois, l’axe intégré récupère uniquement les descendants avec un nom spécifié.However, the integrated axis only retrieves descendants with a specified name. Si Visual Basic utilisateurs souhaitent récupérer tous les descendants, ils doivent utiliser cette méthode d’axe explicitement.If Visual Basic users want to retrieve all descendants, then they must use this axis method explicitly.

Cette méthode utilise l'exécution différée.This method uses deferred execution.

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.Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. Seuls les éléments avec un XName correspondant sont inclus dans la collection.Only elements that have a matching XName are included in the collection.

public:
generic <typename T>
 where T : System::Xml::Linq::XContainer[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<System::Xml::Linq::XElement ^> ^ Descendants(System::Collections::Generic::IEnumerable<T> ^ source, System::Xml::Linq::XName ^ name);
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;
static member Descendants : seq<'T (requires 'T :> System.Xml.Linq.XContainer)> * System.Xml.Linq.XName -> seq<System.Xml.Linq.XElement> (requires 'T :> System.Xml.Linq.XContainer)
<Extension()>
Public Function Descendants(Of T As XContainer) (source As IEnumerable(Of T), name As XName) As IEnumerable(Of XElement)

Paramètres de type

T

Type des objets de source, contraint par XContainer.The type of the objects in source, constrained to XContainer.

Paramètres

source
IEnumerable<T>

IEnumerable<T> de XContainer qui contient la collection source.An IEnumerable<T> of XContainer that contains the source collection.

name
XName

XName à trouver.The XName to match.

Retours

IEnumerable<T> de XElement qui contient les éléments descendants de tous les éléments et tous les documents de la collection source.An IEnumerable<T> of XElement that contains the descendant elements of every element and document in the source collection. Seuls les éléments avec un XName correspondant sont inclus dans la collection.Only elements that have a matching XName are included in the 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é.The following example retrieves a collection of two elements, and then retrieves a collection of all descendants of the two elements that have the specified element name.

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);  
Dim xmlTree As XElement = _  
    <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>  
  
Dim str As String = _  
    ( _  
        From el In xmlTree.<Para>...<t> _  
        Select CStr(el) _  
    ) _  
    .Aggregate(New StringBuilder(), _  
               Function(ByVal sb, ByVal i) sb.Append(i), _  
               Function(ByVal sb) sb.ToString())  
  
Console.WriteLine(str)  

Cet exemple génère la sortie suivante :This example produces the following output:

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 code XML se trouve dans un espace de noms.The following is the same example, but in this case the XML is in a namespace. Pour plus d’informations, consultez utilisation des espaces de noms XML.For more information, see Working with XML Namespaces.

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);  
Imports <xmlns="http://www.adventure-works.com">  
  
Module Module1  
    Sub Main()  
        Dim xmlTree As XElement = _  
            <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>  
  
        Dim str As String = _  
            ( _  
                From el In xmlTree.<Para>...<t> _  
                Select CStr(el) _  
            ) _  
            .Aggregate(New StringBuilder(), _  
                       Function(sb, i) sb.Append(i), _  
                       Function(sb) sb.ToString())  
  
        Console.WriteLine(str)  
    End Sub  
End Module  

Cet exemple génère la sortie suivante :This example produces the following output:

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 cette méthode d’axe explicitement.Visual Basic users can use the Language-Integrated Axes in Visual Basic (LINQ to XML) instead of using this axis method explicitly.

Cette méthode utilise l'exécution différée.This method uses deferred execution.

Voir aussi

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.Returns a collection of elements that contains the descendant elements of every element and document in the source collection.

public:
generic <typename T>
 where T : System::Xml::Linq::XContainer[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<System::Xml::Linq::XElement ^> ^ Descendants(System::Collections::Generic::IEnumerable<T> ^ source);
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;
static member Descendants : seq<'T (requires 'T :> System.Xml.Linq.XContainer)> -> seq<System.Xml.Linq.XElement> (requires 'T :> System.Xml.Linq.XContainer)
<Extension()>
Public Function Descendants(Of T As XContainer) (source As IEnumerable(Of T)) As IEnumerable(Of XElement)

Paramètres de type

T

Type des objets de source, contraint par XContainer.The type of the objects in source, constrained to XContainer.

Paramètres

source
IEnumerable<T>

IEnumerable<T> de XContainer qui contient la collection source.An IEnumerable<T> of XContainer that contains the source collection.

Retours

IEnumerable<T> de XElement qui contient les éléments descendants de tous les éléments et tous les documents de la collection source.An IEnumerable<T> of XElement that contains the descendant elements of every element and document in the source collection.

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 descendants de chaque élément de la collection d’éléments.The following example retrieves a collection of elements, and then uses this axis method to retrieve all descendent elements of every item in the collection of elements.

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);  
Dim xmlTree As XElement = _  
    <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>  
  
Dim elList = From el In xmlTree.<Para>.Descendants _  
                        Select el  
  
For Each el As XElement In elList  
    Console.WriteLine(el)  
Next  

Cet exemple génère la sortie suivante :This example produces the following output:

<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 code XML se trouve dans un espace de noms.The following is the same example, but in this case the XML is in a namespace. Pour plus d’informations, consultez utilisation des espaces de noms XML.For more information, see Working with XML Namespaces.

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);  
Imports <xmlns="http://www.adventure-works.com">  
  
Module Module1  
    Sub Main()  
        Dim xmlTree As XElement = _  
            <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>  
  
        Dim elList = From el In xmlTree.<Para>.Descendants _  
                                Select el  
  
        For Each el As XElement In elList  
            Console.WriteLine(el)  
        Next  
    End Sub  
End Module  
  

Cet exemple génère la sortie suivante :This example produces the following output:

<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.Visual Basic users can use the integrated XML descendant axis to retrieve the descendant elements of a collection. Toutefois, l’axe intégré récupère uniquement les descendants avec un nom spécifié.However, the integrated axis only retrieves descendants with a specified name. Si Visual Basic utilisateurs souhaitent récupérer tous les descendants, ils doivent utiliser cette méthode d’axe explicitement.If Visual Basic users want to retrieve all descendants, then they must use this axis method explicitly.

Cette méthode utilise l'exécution différée.This method uses deferred execution.

Voir aussi

S’applique à