Extensions.Descendants Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt eine Auflistung von Elementen zurück, die die Nachfolgerelemente jedes Elements und Dokuments in der Quellauflistung enthält.
Überlädt
Descendants<T>(IEnumerable<T>, XName) |
Gibt eine gefilterte Auflistung von Elementen zurück, die die Nachfolgerelemente jedes Elements und Dokuments in der Quellauflistung enthält. Nur Elemente, die über einen übereinstimmenden XName verfügen, sind in der Auflistung enthalten. |
Descendants<T>(IEnumerable<T>) |
Gibt eine Auflistung von Elementen zurück, die die Nachfolgerelemente jedes Elements und Dokuments in der Quellauflistung enthält. |
Hinweise
Visual Basic-Benutzer können die integrierte XML-Nachfolgerachse verwenden, um die Nachfolgerelemente 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
Gibt eine gefilterte Auflistung von Elementen zurück, die die Nachfolgerelemente jedes Elements und Dokuments in der Quellauflistung enthält. Nur Elemente, die über einen übereinstimmenden XName verfügen, sind in der Auflistung 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, 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
, auf XContainer beschränkt.
Parameter
- source
- IEnumerable<T>
Ein IEnumerable<T> vom Typ XContainer, das die Quellauflistung enthält.
Gibt zurück
Ein IEnumerable<T> vom Typ XElement, das die Nachfolgerelemente jedes Elements und Dokuments in der Quellauflistung enthält. Nur Elemente, die über einen übereinstimmenden XName verfügen, sind in der Auflistung enthalten.
Beispiele
Im folgenden Beispiel wird eine Auflistung von zwei Elementen und dann eine Auflistung aller Nachfolger der beiden Elemente abgerufen, 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.
Im Folgenden finden Sie das gleiche Beispiel, aber in diesem Fall befindet sich die XML 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) verwenden, anstatt diese Achsenmethode explizit zu verwenden.
Diese Methode verwendet verzögerte Ausführung.
Weitere Informationen
- DescendantNodesAndSelf()
- DescendantsAndSelf()
- DescendantNodes()
- Descendants()
- DescendantNodes<T>(IEnumerable<T>)
- DescendantsAndSelf
- Nodes<T>(IEnumerable<T>)
- Übersicht über LINQ to XML
Gilt für:
Descendants<T>(IEnumerable<T>)
- Quelle:
- Extensions.cs
- Quelle:
- Extensions.cs
- Quelle:
- Extensions.cs
Gibt eine Auflistung von Elementen zurück, die die Nachfolgerelemente jedes Elements und Dokuments in der Quellauflistung enthält.
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
, auf XContainer beschränkt.
Parameter
- source
- IEnumerable<T>
Ein IEnumerable<T> vom Typ XContainer, das die Quellauflistung enthält.
Gibt zurück
Ein IEnumerable<T> vom Typ XElement, das die Nachfolgerelemente jedes Elements und Dokuments in der Quellauflistung enthält.
Beispiele
Im folgenden Beispiel wird eine Auflistung von Elementen abgerufen, und anschließend wird 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>
Im Folgenden finden Sie das gleiche Beispiel, aber in diesem Fall befindet sich die XML 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-Benutzer können die integrierte XML-Nachfolgerachse verwenden, um die Nachfolgerelemente 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
- DescendantNodesAndSelf()
- DescendantsAndSelf()
- DescendantNodes()
- Descendants()
- DescendantNodes<T>(IEnumerable<T>)
- DescendantsAndSelf
- Nodes<T>(IEnumerable<T>)
- Übersicht über LINQ to XML