다음을 통해 공유


XContainer.DescendantNodes 메서드

정의

이 문서 또는 요소의 하위 노드가 문서순으로 들어 있는 컬렉션을 반환합니다.

public:
 System::Collections::Generic::IEnumerable<System::Xml::Linq::XNode ^> ^ DescendantNodes();
public System.Collections.Generic.IEnumerable<System.Xml.Linq.XNode> DescendantNodes ();
member this.DescendantNodes : unit -> seq<System.Xml.Linq.XNode>
Public Function DescendantNodes () As IEnumerable(Of XNode)

반환

IEnumerable<T>의 하위 노드가 문서순으로 들어 있는 XNodeXContainer입니다.

예제

다음 예제에서는 XML 트리를 만든 다음 축을 DescendantNodes 반복합니다.

XElement xmlTree = new XElement("Root",  
    // Attributes are not nodes, so will not be returned by DescendantNodes.  
    new XAttribute("Att1", "AttributeContent"),  
    new XElement("Child",  
        new XElement("GrandChild", "element content")  
    )  
);  
IEnumerable<XNode> dnas =  
    from node in xmlTree.DescendantNodes()  
    select node;  
foreach (XNode node in dnas)  
{  
    if (node is XElement)  
        Console.WriteLine((node as XElement).Name);  
    else  
        Console.WriteLine(node);  
}  
' Attributes are not nodes, so will not be returned by DescendantNodes.  
Dim xmlTree As XElement = _   
    <Root Att1="AttributeContent">  
        <Child>  
            <GrandChild>element content</GrandChild>  
        </Child>  
    </Root>  

Dim dnas = From node In xmlTree.DescendantNodes _  
           Select node  

For Each node In dnas  
    If TypeOf node Is XElement Then  
        Console.WriteLine(DirectCast(node, XElement).Name)  
    Else  
        Console.WriteLine(node)  
    End If  
Next  

이 예제는 다음과 같은 출력을 생성합니다.

Child  
GrandChild  
element content  

설명

특성은 LINQ to XML 노드로 간주되지 않으므로 이 메서드에서 반환되는 컬렉션의 일부가 아닙니다.

이 메서드는 지연된 실행을 사용합니다.

적용 대상

추가 정보