XContainer.Nodes Metoda

Definicja

Zwraca kolekcję węzłów podrzędnych tego elementu lub dokumentu w kolejności dokumentu.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)

Zwraca

Zawierająca zawartość tegoXContainerelementu, w kolejności dokumentu. IEnumerable<T> XNodeAn IEnumerable<T> of XNode containing the contents of this XContainer, in document order.

Przykłady

Poniższy przykład tworzy drzewo XML z różnymi typami węzłów.The following example creates an XML tree with a variety of types of nodes. Następnie wysyła zapytanie do tej metody osi, aby wyliczyć i wydrukować węzły.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  

Ten przykład generuje następujące wyniki: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>  

Poniższy przykład tworzy drzewo XML, który zawiera różne typy węzłów.The following example creates an XML tree that contains a variety of types of nodes. Następnie wylicza fragmenty drzewa, drukując typy węzłów.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]

Uwagi

Należy pamiętać, że zawartość nie zawiera atrybutów.Note that the content does not include attributes. W LINQ do XMLLINQ to XMLprogramie atrybuty nie są traktowane jako węzły drzewa.In LINQ do XMLLINQ to XML, attributes are not considered to be nodes of the tree. Są to pary nazw/wartości skojarzone z elementem.They are name/value pairs associated with an element.

Ta metoda używa odroczonego wykonania.This method uses deferred execution.

Dotyczy

Zobacz też