Extensions.Descendants Yöntem

Tanım

Kaynak koleksiyondaki her öğenin ve belgenin alt öğelerini içeren bir öğe koleksiyonu döndürür.

Aşırı Yüklemeler

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

Kaynak koleksiyondaki her öğenin ve belgenin alt öğelerini içeren filtrelenmiş bir öğe koleksiyonu döndürür. Yalnızca eşleşen XName öğeler koleksiyona dahil edilir.

Descendants<T>(IEnumerable<T>)

Kaynak koleksiyondaki her öğenin ve belgenin alt öğelerini içeren bir öğe koleksiyonu döndürür.

Açıklamalar

Visual Basic kullanıcılar, bir koleksiyonun alt öğelerini almak için tümleşik XML alt eksenini kullanabilir. Ancak, tümleşik eksen yalnızca belirtilen ada sahip alt öğeleri alır. Visual Basic kullanıcılar tüm alt öğeleri almak istiyorsa, bu eksen yöntemini açıkça kullanmaları gerekir.

Bu yöntem ertelenen yürütmeyi kullanır.

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

Kaynak:
Extensions.cs
Kaynak:
Extensions.cs
Kaynak:
Extensions.cs
Kaynak:
Extensions.cs
Kaynak:
Extensions.cs

Kaynak koleksiyondaki her öğenin ve belgenin alt öğelerini içeren filtrelenmiş bir öğe koleksiyonu döndürür. Yalnızca eşleşen XName öğeler koleksiyona dahil edilir.

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)

Tür Parametreleri

T

içindeki sourcenesnelerinin türü ile kısıtlanmış XContainer.

Parametreler

source
IEnumerable<T>

IEnumerable<T> Kaynak XContainer koleksiyonu içeren bir öğe.

name
XName

Eşleşmesi XName için.

Döndürülenler

IEnumerable<T> Kaynak XElement koleksiyondaki her öğe ve belgenin alt öğelerini içeren bir öğesi. Yalnızca eşleşen XName öğeler koleksiyona dahil edilir.

Örnekler

Aşağıdaki örnek, iki öğeden oluşan bir koleksiyon alır ve ardından belirtilen öğe adına sahip iki öğenin tüm alt öğelerinden oluşan bir koleksiyonu alır.

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)

Bu örnek aşağıdaki çıkışı oluşturur:

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

Aşağıda aynı örnek verilmiştir, ancak bu örnekte XML bir ad alanındadır. Daha fazla bilgi için bkz. XML Ad Alanları ile çalışma.

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

Bu örnek aşağıdaki çıkışı oluşturur:

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

Açıklamalar

Visual Basic kullanıcılar bu eksen yöntemini açıkça kullanmak yerine Visual Basic (LINQ to XML) Language-Integrated Eksenlerini kullanabilir.

Bu yöntem ertelenen yürütmeyi kullanır.

Ayrıca bkz.

Şunlara uygulanır

Descendants<T>(IEnumerable<T>)

Kaynak:
Extensions.cs
Kaynak:
Extensions.cs
Kaynak:
Extensions.cs
Kaynak:
Extensions.cs
Kaynak:
Extensions.cs

Kaynak koleksiyondaki her öğenin ve belgenin alt öğelerini içeren bir öğe koleksiyonu döndürür.

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)

Tür Parametreleri

T

içindeki sourcenesnelerinin türü ile kısıtlanmış XContainer.

Parametreler

source
IEnumerable<T>

IEnumerable<T> Kaynak XContainer koleksiyonu içeren bir öğe.

Döndürülenler

IEnumerable<T> Kaynak XElement koleksiyondaki her öğe ve belgenin alt öğelerini içeren bir öğesi.

Örnekler

Aşağıdaki örnek bir öğe koleksiyonu alır ve ardından bu eksen yöntemini kullanarak öğe koleksiyonundaki her öğenin tüm alt öğelerini alır.

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

Bu örnek aşağıdaki çıkışı oluşturur:

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

Aşağıda aynı örnek verilmiştir, ancak bu örnekte XML bir ad alanındadır. Daha fazla bilgi için bkz. XML Ad Alanları ile çalışma.

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

Bu örnek aşağıdaki çıkışı oluşturur:

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

Açıklamalar

Visual Basic kullanıcılar, bir koleksiyonun alt öğelerini almak için tümleşik XML alt eksenini kullanabilir. Ancak, tümleşik eksen yalnızca belirtilen ada sahip alt öğeleri alır. Visual Basic kullanıcılar tüm alt öğeleri almak istiyorsa, bu eksen yöntemini açıkça kullanmaları gerekir.

Bu yöntem ertelenen yürütmeyi kullanır.

Ayrıca bkz.

Şunlara uygulanır