XContainer.Descendants Метод

Определение

Возвращает коллекцию подчиненных узлов для данного документа или элемента в порядке следования документов.Returns a collection of the descendant elements for this document or element, in document order.

Перегрузки

Descendants()

Возвращает коллекцию подчиненных узлов для данного документа или элемента в порядке следования документов.Returns a collection of the descendant elements for this document or element, in document order.

Descendants(XName)

Возвращает фильтрованную коллекцию подчиненных узлов для данного документа или элемента в порядке следования документов.Returns a filtered collection of the descendant elements for this document or element, in document order. В коллекцию включаются только элементы, соответствующие XName.Only elements that have a matching XName are included in the collection.

Комментарии

Этот метод использует отложенное выполнение.This method uses deferred execution.

Descendants()

Возвращает коллекцию подчиненных узлов для данного документа или элемента в порядке следования документов.Returns a collection of the descendant elements for this document or element, in document order.

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.An IEnumerable<T> of XElement containing the descendant elements of the XContainer.

Примеры

В следующем примере создается XML-дерево, а затем используется этот метод оси для получения потомков.The following example creates an XML tree, and then uses this axis method to retrieve the descendants.

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  

В этом примере выводятся следующие данные:This example produces the following output:

Child  
GrandChild  

Комментарии

Обратите внимание, что этот метод не будет возвращать IEnumerable<T>самого себя в результате.Note that this method will not return itself in the resulting IEnumerable<T>. Проверьте DescendantsAndSelf , требуется ли включить текущий XElement объект в результаты.See DescendantsAndSelf if you need to include the current XElement in the results.

Этот метод использует отложенное выполнение.This method uses deferred execution.

Дополнительно

Descendants(XName)

Возвращает фильтрованную коллекцию подчиненных узлов для данного документа или элемента в порядке следования документов.Returns a filtered collection of the descendant elements for this document or element, in document order. В коллекцию включаются только элементы, соответствующие XName.Only elements that have a matching XName are included in the collection.

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)

Параметры

name
XName

XName для соответствия.The XName to match.

Возвраты

IEnumerable<T>XElement, содержащий подчиненные элементы XContainer, которые соответствуют заданному XName.An IEnumerable<T> of XElement containing the descendant elements of the XContainer that match the specified XName.

Примеры

В следующем примере выводятся все потомки элемента.The following example prints all descendants of an element.

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

В этом примере выводятся следующие данные:This example produces the following output:

Child  

Ниже приведен тот же пример, но в данном случае XML находится в пространстве имен.The following is the same example, but in this case the XML is in a namespace. Дополнительные сведения см. в разделе Работа с пространствами имен XML.For more information, see Working with XML Namespaces.

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

В этом примере выводятся следующие данные:This example produces the following output:

{http://www.adventure-works.com}Child  

Комментарии

Этот метод использует отложенное выполнение.This method uses deferred execution.

Дополнительно

Применяется к