Extensions.Descendants Metoda

Definice

Vrátí kolekci prvků, které obsahují následníky každého prvku a dokumentu ve zdrojové kolekci.Returns a collection of elements that contains the descendant elements of every element and document in the source collection.

Přetížení

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

Vrátí filtrovanou kolekci prvků, které obsahují následníky každého prvku a dokumentu ve zdrojové kolekci.Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. Do kolekce jsou zahrnuty pouze prvky XName , které mají odpovídající spárování.Only elements that have a matching XName are included in the collection.

Descendants<T>(IEnumerable<T>)

Vrátí kolekci prvků, které obsahují následníky každého prvku a dokumentu ve zdrojové kolekci.Returns a collection of elements that contains the descendant elements of every element and document in the source collection.

Poznámky

Visual Basic uživatelé mohou použít integrovanou podřízenou osu XML k načtení potomkových prvků kolekce.Visual Basic users can use the integrated XML descendant axis to retrieve the descendant elements of a collection. Integrovaná osa však načte pouze následníky se zadaným názvem.However, the integrated axis only retrieves descendants with a specified name. Pokud Visual Basic uživatelé chtějí načíst všechny následníky, pak musí tuto metodu osy používat explicitně.If Visual Basic users want to retrieve all descendants, then they must use this axis method explicitly.

Tato metoda používá odložené provádění.This method uses deferred execution.

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

Vrátí filtrovanou kolekci prvků, které obsahují následníky každého prvku a dokumentu ve zdrojové kolekci.Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. Do kolekce jsou zahrnuty pouze prvky XName , které mají odpovídající spárování.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)

Parametry typu

T

Typ objektů v source, omezený na XContainer.The type of the objects in source, constrained to XContainer.

Parametry

source
IEnumerable<T>

IEnumerable<T> ObsahujícíXContainer zdrojovou kolekci.An IEnumerable<T> of XContainer that contains the source collection.

name
XName

Tak XName , aby odpovídal.The XName to match.

Návraty

IEnumerable<T> ZXElement , který obsahuje následníky každého prvku a dokumentu ve zdrojové kolekci.An IEnumerable<T> of XElement that contains the descendant elements of every element and document in the source collection. Do kolekce jsou zahrnuty pouze prvky XName , které mají odpovídající spárování.Only elements that have a matching XName are included in the collection.

Příklady

Následující příklad načte kolekci dvou prvků a poté načte kolekci všech následníků dvou prvků, které mají zadaný název elementu.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)  

Tento příklad vytvoří následující výstup:This example produces the following output:

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

Následuje stejný příklad, ale v tomto případě je XML v oboru názvů.The following is the same example, but in this case the XML is in a namespace. Další informace naleznete v tématu práce s obory názvů 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  

Tento příklad vytvoří následující výstup:This example produces the following output:

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

Poznámky

Visual Basic uživatelé můžou místo explicitního použití této metody osy používat osy integrované na jazyce v Visual Basic (LINQ to XML) .Visual Basic users can use the Language-Integrated Axes in Visual Basic (LINQ to XML) instead of using this axis method explicitly.

Tato metoda používá odložené provádění.This method uses deferred execution.

Viz také

Descendants<T>(IEnumerable<T>)

Vrátí kolekci prvků, které obsahují následníky každého prvku a dokumentu ve zdrojové kolekci.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)

Parametry typu

T

Typ objektů v source, omezený na XContainer.The type of the objects in source, constrained to XContainer.

Parametry

source
IEnumerable<T>

IEnumerable<T> ObsahujícíXContainer zdrojovou kolekci.An IEnumerable<T> of XContainer that contains the source collection.

Návraty

IEnumerable<T> ZXElement , který obsahuje následníky každého prvku a dokumentu ve zdrojové kolekci.An IEnumerable<T> of XElement that contains the descendant elements of every element and document in the source collection.

Příklady

Následující příklad načte kolekci prvků a poté používá tuto metodu osy k načtení všech podřízených elementů každé položky v kolekci elementů.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  

Tento příklad vytvoří následující výstup: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>  

Následuje stejný příklad, ale v tomto případě je XML v oboru názvů.The following is the same example, but in this case the XML is in a namespace. Další informace naleznete v tématu práce s obory názvů 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  
  

Tento příklad vytvoří následující výstup: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>  

Poznámky

Visual Basic uživatelé mohou použít integrovanou podřízenou osu XML k načtení potomkových prvků kolekce.Visual Basic users can use the integrated XML descendant axis to retrieve the descendant elements of a collection. Integrovaná osa však načte pouze následníky se zadaným názvem.However, the integrated axis only retrieves descendants with a specified name. Pokud Visual Basic uživatelé chtějí načíst všechny následníky, pak musí tuto metodu osy používat explicitně.If Visual Basic users want to retrieve all descendants, then they must use this axis method explicitly.

Tato metoda používá odložené provádění.This method uses deferred execution.

Viz také

Platí pro