Extensions.Descendants Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Kaynak koleksiyondaki her öğenin ve belgenin alt öğelerini içeren bir öğe koleksiyonu döndürür.
Aşırı Yüklemeler
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ştirmesi XName olan öğ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 ertelenmiş yürütmeyi kullanır.
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ştirmesi XName olan öğ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 nesnelerinin source
türü ile kısıtlanır XContainer.
Parametreler
- source
- IEnumerable<T>
XContainer Kaynak IEnumerable<T> koleksiyonu içeren bir.
Döndürülenler
XElement Kaynak IEnumerable<T> koleksiyondaki her öğenin ve belgenin alt öğelerini içeren bir öğesi. Yalnızca eşleştirmesi XName olan öğeler koleksiyona dahil edilir.
Örnekler
Aşağıdaki örnek, iki öğeden oluşan bir koleksiyonu 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 da aynı örnek verilmiştir, ancak bu örnekte XML bir ad alanındadır. Daha fazla bilgi için bkz . XML Ad Alanlarıyla Ç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 'de (LINQ to XML) Dille Tümleşik Eksenleri kullanabilir.
Bu yöntem ertelenmiş yürütmeyi kullanır.
Ayrıca bkz.
- DescendantNodesAndSelf()
- DescendantsAndSelf()
- DescendantNodes()
- Descendants()
- DescendantNodes<T>(IEnumerable<T>)
- DescendantsAndSelf
- Nodes<T>(IEnumerable<T>)
- LINQ to XML'e genel bakış
Şunlara uygulanır
Descendants<T>(IEnumerable<T>)
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 nesnelerinin source
türü ile kısıtlanır XContainer.
Parametreler
- source
- IEnumerable<T>
XContainer Kaynak IEnumerable<T> koleksiyonu içeren bir.
Döndürülenler
XElement Kaynak IEnumerable<T> koleksiyondaki her öğenin ve belgenin alt öğelerini içeren bir öğesi.
Örnekler
Aşağıdaki örnek bir öğe koleksiyonunu 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 da aynı örnek verilmiştir, ancak bu örnekte XML bir ad alanındadır. Daha fazla bilgi için bkz . XML Ad Alanlarıyla Ç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 ertelenmiş yürütmeyi kullanır.
Ayrıca bkz.
- DescendantNodesAndSelf()
- DescendantsAndSelf()
- DescendantNodes()
- Descendants()
- DescendantNodes<T>(IEnumerable<T>)
- DescendantsAndSelf
- Nodes<T>(IEnumerable<T>)
- LINQ to XML'e genel bakış