XContainer.Descendants Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает коллекцию подчиненных узлов для данного документа или элемента в порядке следования документов.
Перегрузки
Descendants() |
Возвращает коллекцию подчиненных узлов для данного документа или элемента в порядке следования документов. |
Descendants(XName) |
Возвращает фильтрованную коллекцию подчиненных узлов для данного документа или элемента в порядке следования документов. В коллекцию включаются только элементы, соответствующие XName. |
Комментарии
Этот метод использует отложенное выполнение.
Descendants()
- Исходный код:
- XContainer.cs
- Исходный код:
- XContainer.cs
- Исходный код:
- XContainer.cs
Возвращает коллекцию подчиненных узлов для данного документа или элемента в порядке следования документов.
public:
System::Collections::Generic::IEnumerable<System::Xml::Linq::XElement ^> ^ Descendants();
public System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> Descendants ();
member this.Descendants : unit -> seq<System.Xml.Linq.XElement>
Public Function Descendants () As IEnumerable(Of XElement)
Возвращаемое значение
IEnumerable<T> XElement содержащий подчиненные элементы XContainer.
Примеры
В следующем примере создается XML-дерево, а затем используется этот метод оси для получения потомков.
XElement xmlTree = new XElement("Root",
new XAttribute("Att1", "AttributeContent"),
new XElement("Child",
new XText("Some text"),
new XElement("GrandChild", "element content")
)
);
IEnumerable<XElement> de =
from el in xmlTree.Descendants()
select el;
foreach (XElement el in de)
Console.WriteLine(el.Name);
' Attributes are not nodes, so will not be returned by DescendantNodes.
Dim xmlTree As XElement = _
<Root Att1="AttributeContent">
<Child>Some text
<GrandChild>element content</GrandChild>
</Child>
</Root>
Dim de = From el In xmlTree.Descendants _
Select el
For Each el In de
Console.WriteLine(el.Name)
Next
В этом примере выводятся следующие данные:
Child
GrandChild
Комментарии
Обратите внимание, что этот метод не возвращает себя в результирующем IEnumerable<T>объекте . Узнайте DescendantsAndSelf , нужно ли включить текущий XElement объект в результаты.
Этот метод использует отложенное выполнение.
См. также раздел
Применяется к
Descendants(XName)
- Исходный код:
- XContainer.cs
- Исходный код:
- XContainer.cs
- Исходный код:
- XContainer.cs
Возвращает фильтрованную коллекцию подчиненных узлов для данного документа или элемента в порядке следования документов. В коллекцию включаются только элементы, соответствующие XName.
public:
System::Collections::Generic::IEnumerable<System::Xml::Linq::XElement ^> ^ Descendants(System::Xml::Linq::XName ^ name);
public System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> Descendants (System.Xml.Linq.XName name);
public System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> Descendants (System.Xml.Linq.XName? name);
member this.Descendants : System.Xml.Linq.XName -> seq<System.Xml.Linq.XElement>
Public Function Descendants (name As XName) As IEnumerable(Of XElement)
Параметры
Возвращаемое значение
IEnumerable<T> XElement, содержащий подчиненные элементы XContainer, которые соответствуют заданному XName.
Примеры
В следующем примере выводится все потомки элемента.
// Attributes are not nodes, so will not be returned by DescendantNodes.
XElement xmlTree = new XElement("Root",
new XAttribute("Att1", "AttributeContent"),
new XElement("Child",
new XText("Some text"),
new XElement("GrandChild", "element content")
)
);
IEnumerable<XElement> de =
from el in xmlTree.Descendants("Child")
select el;
foreach (XElement el in de)
Console.WriteLine(el.Name);
' Attributes are not nodes, so will not be returned by the descendants axis.
Dim xmlTree As XElement = _
<Root Att1="AttributeContent">
<Child>Some text
<GrandChild>element content</GrandChild>
</Child>
</Root>
Dim de = From el In xmlTree...<Child> _
Select el
For Each el In de
Console.WriteLine(el.Name)
Next
В этом примере выводятся следующие данные:
Child
Ниже приведен тот же пример, но в этом случае XML находится в пространстве имен. Дополнительные сведения см. в статье Работа с пространствами имен XML.
// Attributes are not nodes, so will not be returned by DescendantNodes.
XNamespace aw = "http://www.adventure-works.com";
XElement xmlTree = new XElement(aw + "Root",
new XAttribute(aw + "Att1", "AttributeContent"),
new XElement(aw + "Child",
new XText("Some text"),
new XElement(aw + "GrandChild", "element content")
)
);
IEnumerable<XElement> de =
from el in xmlTree.Descendants(aw + "Child")
select el;
foreach (XElement el in de)
Console.WriteLine(el.Name);
Imports <xmlns:aw = "http://www.adventure-works.com">
Module Module1
Sub Main()
' Attributes are not nodes, so will not be returned by the descendants axis.
Dim xmlTree As XElement = _
<aw:Root aw:Att1="AttributeContent">
<aw:Child>Some text
<aw:GrandChild>element content</aw:GrandChild>
</aw:Child>
</aw:Root>
Dim de = From el In xmlTree...<aw:Child> _
Select el
For Each el In de
Console.WriteLine(el.Name)
Next
End Sub
End Module
В этом примере выводятся следующие данные:
{http://www.adventure-works.com}Child
Комментарии
Этот метод использует отложенное выполнение.