XContainer.Nodes XContainer.Nodes XContainer.Nodes XContainer.Nodes Method

定義

この要素またはドキュメントの子ノードのコレクションをドキュメント順に返します。Returns a collection of the child nodes of this element or document, in document order.

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 Iterator Function Nodes () As IEnumerable(Of XNode)

戻り値

この IEnumerable<T> の内容をドキュメント順に格納している XNodeXContainerAn IEnumerable<T> of XNode containing the contents of this XContainer, in document order.

次の例では、さまざまな種類のノードを使用して XML ツリーを作成します。The following example creates an XML tree with a variety of types of nodes. 次に、この軸メソッドに対してクエリを行い、ノードを列挙して印刷します。It then queries this axis method to enumerate and print the nodes.

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  

この例を実行すると、次の出力が生成されます。This example produces the following output:

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

次の例では、さまざまな種類のノードを含む XML ツリーを作成します。The following example creates an XML tree that contains a variety of types of nodes. 次に、ツリーの一部を列挙し、ノードの種類を出力します。It then enumerates through portions of the tree, printing the node types.

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]

注釈

コンテンツには属性が含まれていないことに注意してください。Note that the content does not include attributes. LINQ to XMLLINQ to XMLは、属性はツリーのノードとは見なされません。In LINQ to XMLLINQ to XML, attributes are not considered to be nodes of the tree. 要素に関連付けられている名前と値のペアです。They are name/value pairs associated with an element.

このメソッドは遅延実行を使用します。This method uses deferred execution.

適用対象

こちらもご覧ください