다음을 통해 공유


XContainer.Nodes 메서드

정의

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

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

반환

IEnumerable<XNode>

IEnumerable<T>의 콘텐츠가 문서순으로 들어 있는 XNodeXContainer입니다.

예제

다음 예제에서는 다양한 유형의 노드를 사용하여 XML 트리를 만듭니다. 그런 다음 이 축 메서드를 쿼리하여 노드를 열거하고 인쇄합니다.

XElement xmlTree = new XElement("Root",  
    new XElement("Child1", 1),  
    new XElement("Child2", 2),  
    new XComment("a comment"),  
    new XElement("Child3", 3),  
    new XElement("Child4", 4),  
    new XText("mixed content"),  
    new XElement("Child5", 5)  
);  
IEnumerable<XNode> nodes =  
    from nd in xmlTree.Nodes()  
    select nd;  
foreach (XNode node in nodes)  
    Console.WriteLine(node);  
Dim xmlTree As XElement = _   
        <Root>  
            <Child1>1</Child1>  
            <Child2>2</Child2>  
            <!--a comment-->  
            <Child3>3</Child3>  
            <Child4>4</Child4>mixed content<Child5>5</Child5>  
            </Root>  

Dim nodes = From nd In xmlTree.Nodes() _  
            Select nd  

For Each node In nodes  
    Console.WriteLine(node)  
Next  

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

<Child1>1</Child1>  
<Child2>2</Child2>  
<!--a comment-->  
<Child3>3</Child3>  
<Child4>4</Child4>  
mixed content  
<Child5>5</Child5>  

다음 예제에서는 다양한 유형의 노드가 포함된 XML 트리를 만듭니다. 그런 다음 트리의 일부를 열거하여 노드 유형을 인쇄합니다.

XDocument xmlTree = new XDocument(  
    new XComment("a comment"),  
    new XProcessingInstruction("xml-stylesheet", "type=\"text/xsl\" href=\"hello.xsl\""),  
    new XElement("Root",  
        new XAttribute("Att", "attContent"),  
        new XElement("Child1",  
            new XCData("CDATA content")  
        ),  
        new XElement("Child2",  
            new XText("Text content")  
        )  
    )  
);  

foreach (XNode node in xmlTree.Nodes())  
{  
    Console.WriteLine(node.NodeType);  
    if (node.NodeType == XmlNodeType.Element)  
    {  
        foreach (XAttribute att in ((XElement)node).Attributes())  
            Console.WriteLine(att.NodeType);  
        foreach (XNode node2 in ((XElement)node).Nodes())  
        {  
            Console.WriteLine(node2.NodeType);  
            if (node2.NodeType == XmlNodeType.Element)  
                foreach (XNode node3 in ((XElement)node2).Nodes())  
                    Console.WriteLine(node3.NodeType);  
        }  
    }  
}  
Dim xmlTree As XDocument = _   
    <?xml version="1.0" encoding="utf-8"?>  
    <!--a comment-->  
    <?xml-stylesheet type='text/xsl' href='hello.xsl'?>  
    <Root Att="attContent">  
        <Child1><![CDATA[CDATA content]

설명

콘텐츠에는 특성이 포함되지 않습니다. LINQ to XML 특성은 트리의 노드로 간주되지 않습니다. 요소와 연결된 이름/값 쌍입니다.

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

적용 대상

추가 정보