Extensions.Descendants Metod

Definition

Returnerar en samling element som innehåller underordnade element för varje element och dokument i källsamlingen.

Överlagringar

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

Returnerar en filtrerad samling element som innehåller underordnade element för varje element och dokument i källsamlingen. Endast element som har matchning XName ingår i samlingen.

Descendants<T>(IEnumerable<T>)

Returnerar en samling element som innehåller underordnade element för varje element och dokument i källsamlingen.

Kommentarer

Visual Basic användare kan använda den integrerade XML-underordnad axeln för att hämta underordnade element i en samling. Den integrerade axeln hämtar dock endast underordnade med ett angivet namn. Om Visual Basic användare vill hämta alla underordnade måste de uttryckligen använda den här axelmetoden.

Den här metoden använder uppskjuten körning.

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

Källa:
Extensions.cs
Källa:
Extensions.cs
Källa:
Extensions.cs
Källa:
Extensions.cs
Källa:
Extensions.cs

Returnerar en filtrerad samling element som innehåller underordnade element för varje element och dokument i källsamlingen. Endast element som har matchning XName ingår i samlingen.

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)

Typparametrar

T

Typen av objekt i source, begränsad till XContainer.

Parametrar

source
IEnumerable<T>

En IEnumerable<T> av XContainer dem innehåller källsamlingen.

name
XName

Att XName matcha.

Returer

En IEnumerable<T> av XElement dessa innehåller underordnade element för varje element och dokument i källsamlingen. Endast element som har matchning XName ingår i samlingen.

Exempel

I följande exempel hämtas en samling med två element och sedan hämtas en samling med alla underordnade till de två element som har det angivna elementnamnet.

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)

Det här exemplet genererar följande utdata:

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

Följande är samma exempel, men i det här fallet finns XML i ett namnområde. Mer information finns i Arbeta med XML-namnområden.

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

Det här exemplet genererar följande utdata:

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

Kommentarer

Visual Basic användare kan använda Language-Integrated axlar i Visual Basic (LINQ till XML) i stället för att använda den här axelmetoden explicit.

Den här metoden använder uppskjuten körning.

Se även

Gäller för

Descendants<T>(IEnumerable<T>)

Källa:
Extensions.cs
Källa:
Extensions.cs
Källa:
Extensions.cs
Källa:
Extensions.cs
Källa:
Extensions.cs

Returnerar en samling element som innehåller underordnade element för varje element och dokument i källsamlingen.

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)

Typparametrar

T

Typen av objekt i source, begränsad till XContainer.

Parametrar

source
IEnumerable<T>

En IEnumerable<T> av XContainer dem innehåller källsamlingen.

Returer

En IEnumerable<T> av XElement dessa innehåller underordnade element för varje element och dokument i källsamlingen.

Exempel

I följande exempel hämtas en samling element och den här axelmetoden används sedan för att hämta alla underordnade element i varje objekt i samlingen med element.

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

Det här exemplet genererar följande utdata:

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

Följande är samma exempel, men i det här fallet finns XML i ett namnområde. Mer information finns i Arbeta med XML-namnområden.

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

Det här exemplet genererar följande utdata:

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

Kommentarer

Visual Basic användare kan använda den integrerade XML-underordnad axeln för att hämta underordnade element i en samling. Den integrerade axeln hämtar dock endast underordnade med ett angivet namn. Om Visual Basic användare vill hämta alla underordnade måste de uttryckligen använda den här axelmetoden.

Den här metoden använder uppskjuten körning.

Se även

Gäller för