Extensions.Descendants Metoda

Definicja

Zwraca kolekcję elementów, które zawierają elementy podrzędne każdego elementu i dokumentu w kolekcji źródłowej.

Przeciążenia

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

Zwraca przefiltrowaną kolekcję elementów zawierających elementy podrzędne każdego elementu i dokumentu w kolekcji źródłowej. W kolekcji znajdują się tylko elementy, które mają dopasowanie XName .

Descendants<T>(IEnumerable<T>)

Zwraca kolekcję elementów, które zawierają elementy podrzędne każdego elementu i dokumentu w kolekcji źródłowej.

Uwagi

Użytkownicy języka Visual Basic mogą używać zintegrowanej osi elementów podrzędnych XML do pobierania elementów podrzędnych kolekcji. Jednak zintegrowana oś pobiera tylko elementy podrzędne o określonej nazwie. Jeśli użytkownicy języka Visual Basic chcą pobrać wszystkie elementy podrzędne, muszą jawnie użyć tej metody osi.

Ta metoda używa odroczonego wykonania.

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

Źródło:
Extensions.cs
Źródło:
Extensions.cs
Źródło:
Extensions.cs

Zwraca przefiltrowaną kolekcję elementów zawierających elementy podrzędne każdego elementu i dokumentu w kolekcji źródłowej. W kolekcji znajdują się tylko elementy, które mają dopasowanie XName .

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;

Parametry typu

T

Typ obiektów w elemecie source, ograniczony do XContainer.

Parametry

source
IEnumerable<T>

Element IEnumerable<T> zawierający XContainer kolekcję źródłową.

name
XName

Element XName do dopasowania.

Zwraca

Element IEnumerable<T> zawierający XElement elementy podrzędne każdego elementu i dokumentu w kolekcji źródłowej. W kolekcji znajdują się tylko elementy, które mają dopasowanie XName .

Przykłady

Poniższy przykład pobiera kolekcję dwóch elementów, a następnie pobiera kolekcję wszystkich elementów podrzędnych dwóch elementów, które mają określoną nazwę elementu.

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

Ten przykład generuje następujące wyniki:

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

Poniżej przedstawiono ten sam przykład, ale w tym przypadku kod XML znajduje się w przestrzeni nazw. Aby uzyskać więcej informacji, zobacz Praca z przestrzeniami nazw XML.

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

Ten przykład generuje następujące wyniki:

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

Uwagi

Użytkownicy języka Visual Basic mogą jawnie używać osi zintegrowanych z językiem w języku Visual Basic (LINQ to XML), zamiast jawnie używać tej metody osi.

Ta metoda używa odroczonego wykonania.

Zobacz też

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.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>)

Źródło:
Extensions.cs
Źródło:
Extensions.cs
Źródło:
Extensions.cs

Zwraca kolekcję elementów, które zawierają elementy podrzędne każdego elementu i dokumentu w kolekcji źródłowej.

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;

Parametry typu

T

Typ obiektów w elemecie source, ograniczony do XContainer.

Parametry

source
IEnumerable<T>

Element IEnumerable<T> zawierający XContainer kolekcję źródłową.

Zwraca

Element IEnumerable<T> zawierający XElement elementy podrzędne każdego elementu i dokumentu w kolekcji źródłowej.

Przykłady

Poniższy przykład pobiera kolekcję elementów, a następnie używa tej metody osi do pobierania wszystkich elementów malejących każdego elementu w kolekcji elementów.

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

Ten przykład generuje następujące wyniki:

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

Poniżej przedstawiono ten sam przykład, ale w tym przypadku kod XML znajduje się w przestrzeni nazw. Aby uzyskać więcej informacji, zobacz Praca z przestrzeniami nazw XML.

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

Ten przykład generuje następujące wyniki:

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

Uwagi

Użytkownicy języka Visual Basic mogą używać zintegrowanej osi elementów podrzędnych XML do pobierania elementów podrzędnych kolekcji. Jednak zintegrowana oś pobiera tylko elementy podrzędne o określonej nazwie. Jeśli użytkownicy języka Visual Basic chcą pobrać wszystkie elementy podrzędne, muszą jawnie użyć tej metody osi.

Ta metoda używa odroczonego wykonania.

Zobacz też

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.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