Extensions.Descendants Methode

Definitie

Retourneert een verzameling elementen die de onderliggende elementen van elk element en document in de bronverzameling bevat.

Overloads

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

Retourneert een gefilterde verzameling elementen die de onderliggende elementen van elk element en document in de bronverzameling bevat. Alleen elementen die een overeenkomst XName hebben, worden opgenomen in de verzameling.

Descendants<T>(IEnumerable<T>)

Retourneert een verzameling elementen die de onderliggende elementen van elk element en document in de bronverzameling bevat.

Opmerkingen

Visual Basic gebruikers kunnen de geïntegreerde XML-afstammelingsas gebruiken om de onderliggende elementen van een verzameling op te halen. De geïntegreerde as haalt echter alleen afstammelingen op met een opgegeven naam. Als Visual Basic gebruikers alle afstammelingen willen ophalen, moeten ze deze asmethode expliciet gebruiken.

Deze methode maakt gebruik van de uitgestelde uitvoering.

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

Bron:
Extensions.cs
Bron:
Extensions.cs
Bron:
Extensions.cs
Bron:
Extensions.cs
Bron:
Extensions.cs

Retourneert een gefilterde verzameling elementen die de onderliggende elementen van elk element en document in de bronverzameling bevat. Alleen elementen die een overeenkomst XName hebben, worden opgenomen in de verzameling.

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)

Type parameters

T

Het type van de objecten in source, beperkt tot XContainer.

Parameters

source
IEnumerable<T>

Een IEnumerable<T> van XContainer die de bronverzameling bevat.

name
XName

De XName te vergelijken.

Retouren

Een IEnumerable<T> daarvan XElement bevat de onderliggende elementen van elk element en document in de bronverzameling. Alleen elementen die een overeenkomst XName hebben, worden opgenomen in de verzameling.

Voorbeelden

In het volgende voorbeeld wordt een verzameling van twee elementen opgehaald en vervolgens een verzameling van alle afstammelingen van de twee elementen met de opgegeven elementnaam opgehaald.

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)

In dit voorbeeld wordt de volgende uitvoer gegenereerd:

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

Hier volgt hetzelfde voorbeeld, maar in dit geval bevindt de XML zich in een naamruimte. Zie Werken met XML-naamruimten voor meer informatie.

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

In dit voorbeeld wordt de volgende uitvoer gegenereerd:

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

Opmerkingen

Visual Basic gebruikers kunnen de Language-Integrated Assen in Visual Basic (LINQ naar XML) gebruiken in plaats van deze asmethode expliciet te gebruiken.

Deze methode maakt gebruik van de uitgestelde uitvoering.

Zie ook

Van toepassing op

Descendants<T>(IEnumerable<T>)

Bron:
Extensions.cs
Bron:
Extensions.cs
Bron:
Extensions.cs
Bron:
Extensions.cs
Bron:
Extensions.cs

Retourneert een verzameling elementen die de onderliggende elementen van elk element en document in de bronverzameling bevat.

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)

Type parameters

T

Het type van de objecten in source, beperkt tot XContainer.

Parameters

source
IEnumerable<T>

Een IEnumerable<T> van XContainer die de bronverzameling bevat.

Retouren

Een IEnumerable<T> daarvan XElement bevat de onderliggende elementen van elk element en document in de bronverzameling.

Voorbeelden

In het volgende voorbeeld wordt een verzameling elementen opgehaald en vervolgens deze asmethode gebruikt om alle afstammingselementen van elk item in de verzameling elementen op te halen.

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

In dit voorbeeld wordt de volgende uitvoer gegenereerd:

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

Hier volgt hetzelfde voorbeeld, maar in dit geval bevindt de XML zich in een naamruimte. Zie Werken met XML-naamruimten voor meer informatie.

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

In dit voorbeeld wordt de volgende uitvoer gegenereerd:

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

Opmerkingen

Visual Basic gebruikers kunnen de geïntegreerde XML-afstammelingsas gebruiken om de onderliggende elementen van een verzameling op te halen. De geïntegreerde as haalt echter alleen afstammelingen op met een opgegeven naam. Als Visual Basic gebruikers alle afstammelingen willen ophalen, moeten ze deze asmethode expliciet gebruiken.

Deze methode maakt gebruik van de uitgestelde uitvoering.

Zie ook

Van toepassing op