Extensions.Descendants Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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.
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
- DescendantNodesAndSelf()
- DescendantsAndSelf()
- DescendantNodes()
- Descendants()
- DescendantNodes<T>(IEnumerable<T>)
- DescendantsAndSelf
- Nodes<T>(IEnumerable<T>)
- Översikt över LINQ till XML
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
- DescendantNodesAndSelf()
- DescendantsAndSelf()
- DescendantNodes()
- Descendants()
- DescendantNodes<T>(IEnumerable<T>)
- DescendantsAndSelf
- Nodes<T>(IEnumerable<T>)
- Översikt över LINQ till XML