XContainer.Nodes 方法


按文档顺序返回此元素或文档的子节点集合。Returns a collection of the child nodes of this element or document, in document order.

 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<T>XNode,其中按文档顺序包含此 XContainer 的内容。An 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)  
Dim xmlTree As XElement = _   
            <!--a comment-->  
            <Child4>4</Child4>mixed content<Child5>5</Child5>  
Dim nodes = From nd In xmlTree.Nodes() _  
            Select nd  
For Each node In nodes  

该示例产生下面的输出:This example produces the following output:

<!--a comment-->  
mixed content  

下面的示例创建一个 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())  
    if (node.NodeType == XmlNodeType.Element)  
        foreach (XAttribute att in ((XElement)node).Attributes())  
        foreach (XNode node2 in ((XElement)node).Nodes())  
            if (node2.NodeType == XmlNodeType.Element)  
                foreach (XNode node3 in ((XElement)node2).Nodes())  
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.