Extensions.Descendants Methode

Definition

Gibt eine Auflistung von Elementen zurück, die die untergeordneten Elemente jedes Elements und Dokuments in der Quellauflistung enthalten.

Überlädt

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

Gibt eine gefilterte Auflistung von Elementen zurück, die die untergeordneten Elemente jedes Elements und Dokuments in der Quellauflistung enthalten. In der Auflistung sind nur Elemente enthalten, die über einen übereinstimmenden XName verfügen.

Descendants<T>(IEnumerable<T>)

Gibt eine Auflistung von Elementen zurück, die die untergeordneten Elemente jedes Elements und Dokuments in der Quellauflistung enthalten.

Hinweise

Visual Basic Können Benutzer die integrierte XML-Untergeordnete Achse verwenden, um die untergeordneten Elemente 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
Quelle:
Extensions.cs
Quelle:
Extensions.cs

Gibt eine gefilterte Auflistung von Elementen zurück, die die untergeordneten Elemente jedes Elements und Dokuments in der Quellauflistung enthalten. In der Auflistung sind nur Elemente enthalten, die über einen übereinstimmenden XName verfügen.

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

Typparameter

T

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

Parameter

source
IEnumerable<T>

Eine IEnumerable<T> davon XContainer , die die Quellauflistung enthält.

name
XName

Die XName Übereinstimmung.

Gibt zurück

Ein IEnumerable<T> Element, das XElement die untergeordneten Elemente jedes Elements und Dokuments in der Quellauflistung enthält. In der Auflistung sind nur Elemente enthalten, die über einen übereinstimmenden XName verfügen.

Beispiele

Das folgende Beispiel ruft eine Auflistung von zwei Elementen ab und ruft dann eine Auflistung aller Untergeordneten der beiden Elemente ab, die den angegebenen Elementnamen aufweisen.

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)

Dieses Beispiel erzeugt die folgende Ausgabe:

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

Nachfolgend sehen Sie das gleiche Beispiel, aber in diesem Fall befindet sich der XML-Code in einem Namespace. Weitere Informationen finden Sie unter Arbeiten mit 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

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) anstelle dieser Achsenmethode explizit verwenden.

Diese Methode verwendet verzögerte Ausführung.

Weitere Informationen

Gilt für:

Descendants<T>(IEnumerable<T>)

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

Gibt eine Auflistung von Elementen zurück, die die untergeordneten Elemente jedes Elements und Dokuments in der Quellauflistung enthalten.

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

Typparameter

T

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

Parameter

source
IEnumerable<T>

Eine IEnumerable<T> davon XContainer , die die Quellauflistung enthält.

Gibt zurück

Ein IEnumerable<T> Element, das XElement die untergeordneten Elemente jedes Elements und Dokuments in der Quellauflistung enthält.

Beispiele

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

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

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>

Nachfolgend sehen Sie das gleiche Beispiel, aber in diesem Fall befindet sich der XML-Code in einem Namespace. Weitere Informationen finden Sie unter Arbeiten mit 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

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 Können Benutzer die integrierte XML-Untergeordnete Achse verwenden, um die untergeordneten Elemente 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: