Auf Englisch lesen

Freigeben über


Extensions.Descendants Methode

Definition

Gibt eine Auflistung von Elementen zurück, die die Nachfolgerelemente jedes Elements und Dokuments in der Quellauflistung enthält.

Überlädt

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

Gibt eine gefilterte Auflistung von Elementen zurück, die die Nachfolgerelemente jedes Elements und Dokuments in der Quellauflistung enthält. Nur Elemente, die über einen übereinstimmenden XName verfügen, sind in der Auflistung enthalten.

Descendants<T>(IEnumerable<T>)

Gibt eine Auflistung von Elementen zurück, die die Nachfolgerelemente jedes Elements und Dokuments in der Quellauflistung enthält.

Hinweise

Visual Basic-Benutzer können die integrierte XML-Nachfolgerachse verwenden, um die Nachfolgerelemente einer Auflistung abzurufen. Die integrierte Achse ruft jedoch nur Nachfolger mit einem angegebenen Namen ab. Wenn Visual Basic-Benutzer alle Nachfolger abrufen möchten, müssen sie diese Achsenmethode explizit verwenden.

Diese Methode verwendet verzögerte Ausführung.

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

Quelle:
Extensions.cs
Quelle:
Extensions.cs
Quelle:
Extensions.cs

Gibt eine gefilterte Auflistung von Elementen zurück, die die Nachfolgerelemente jedes Elements und Dokuments in der Quellauflistung enthält. Nur Elemente, die über einen übereinstimmenden XName verfügen, sind in der Auflistung enthalten.

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;

Typparameter

T

Der Typ der Objekte in source, auf XContainer beschränkt.

Parameter

source
IEnumerable<T>

Ein IEnumerable<T> vom Typ XContainer, das die Quellauflistung enthält.

name
XName

Der XName, mit dem eine Übereinstimmung gefunden werden soll.

Gibt zurück

Ein IEnumerable<T> vom Typ XElement, das die Nachfolgerelemente jedes Elements und Dokuments in der Quellauflistung enthält. Nur Elemente, die über einen übereinstimmenden XName verfügen, sind in der Auflistung enthalten.

Beispiele

Im folgenden Beispiel wird eine Auflistung von zwei Elementen und dann eine Auflistung aller Nachfolger der beiden Elemente abgerufen, die den angegebenen Elementnamen aufweisen.

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);  

Dieses Beispiel erzeugt die folgende Ausgabe:

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

Im Folgenden finden Sie das gleiche Beispiel, aber in diesem Fall befindet sich die XML in einem Namespace. Weitere Informationen finden Sie unter Arbeiten mit XML-Namespaces.

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);  

Dieses Beispiel erzeugt die folgende Ausgabe:

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

Hinweise

Visual Basic-Benutzer können die language-Integrated Axes in Visual Basic (LINQ to XML) verwenden, anstatt diese Achsenmethode explizit zu verwenden.

Diese Methode verwendet verzögerte Ausführung.

Weitere Informationen

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.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, 8, 9
.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, 4.8.1
.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>)

Quelle:
Extensions.cs
Quelle:
Extensions.cs
Quelle:
Extensions.cs

Gibt eine Auflistung von Elementen zurück, die die Nachfolgerelemente jedes Elements und Dokuments in der Quellauflistung enthält.

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;

Typparameter

T

Der Typ der Objekte in source, auf XContainer beschränkt.

Parameter

source
IEnumerable<T>

Ein IEnumerable<T> vom Typ XContainer, das die Quellauflistung enthält.

Gibt zurück

Ein IEnumerable<T> vom Typ XElement, das die Nachfolgerelemente jedes Elements und Dokuments in der Quellauflistung enthält.

Beispiele

Im folgenden Beispiel wird eine Auflistung von Elementen abgerufen, und anschließend wird diese Achsenmethode verwendet, um alle untergeordneten Elemente jedes Elements in der Auflistung von Elementen abzurufen.

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);  

Dieses Beispiel erzeugt die folgende Ausgabe:

<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>  

Im Folgenden finden Sie das gleiche Beispiel, aber in diesem Fall befindet sich die XML in einem Namespace. Weitere Informationen finden Sie unter Arbeiten mit XML-Namespaces.

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);  

Dieses Beispiel erzeugt die folgende Ausgabe:

<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>  

Hinweise

Visual Basic-Benutzer können die integrierte XML-Nachfolgerachse verwenden, um die Nachfolgerelemente einer Auflistung abzurufen. Die integrierte Achse ruft jedoch nur Nachfolger mit einem angegebenen Namen ab. Wenn Visual Basic-Benutzer alle Nachfolger abrufen möchten, müssen sie diese Achsenmethode explizit verwenden.

Diese Methode verwendet verzögerte Ausführung.

Weitere Informationen

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.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, 8, 9
.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, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0