XContainer.Nodes Yöntem

Tanım

Bu öğenin veya belgenin alt düğümlerinin bir koleksiyonunu belge sırasına göre döndürür.

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)

Döndürülenler

IEnumerable<XNode>

IEnumerable<T> Bu XContaineröğesinin XNode içeriğini belge sırasına göre içeren bir.

Örnekler

Aşağıdaki örnek, çeşitli düğüm türlerine sahip bir XML ağacı oluşturur. Ardından düğümleri listelemek ve yazdırmak için bu eksen yöntemini sorgular.

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  

Bu örnek aşağıdaki çıkışı oluşturur:

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

Aşağıdaki örnek, çeşitli düğüm türlerini içeren bir XML ağacı oluşturur. Ardından, düğüm türlerini yazdırarak ağacın bölümleri arasında numaralandırılır.

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]

Açıklamalar

İçeriğin öznitelikleri içermediğini unutmayın. LINQ to XML öznitelikleri ağacın düğümleri olarak kabul edilmez. Bir öğeyle ilişkili ad/değer çiftleridir.

Bu yöntem ertelenmiş yürütmeyi kullanır.

Şunlara uygulanır

Ayrıca bkz.