XContainer.DescendantNodes Metod

Definition

Returnerar en samling underordnade noder för det här dokumentet eller elementet i dokumentordning.

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

Returer

En IEnumerable<T> av XNode som innehåller de underordnade noderna i dokumentordningen XContainer, i dokumentordning.

Exempel

I följande exempel skapas ett XML-träd och itererar sedan genom DescendantNodes axeln.

XElement xmlTree = new XElement("Root",
    // Attributes are not nodes, so will not be returned by DescendantNodes.
    new XAttribute("Att1", "AttributeContent"),
    new XElement("Child",
        new XElement("GrandChild", "element content")
    )
);
IEnumerable<XNode> dnas =
    from node in xmlTree.DescendantNodes()
    select node;
foreach (XNode node in dnas)
{
    if (node is XElement)
        Console.WriteLine((node as XElement).Name);
    else
        Console.WriteLine(node);
}
' Attributes are not nodes, so will not be returned by DescendantNodes.
Dim xmlTree As XElement = _
    <Root Att1="AttributeContent">
        <Child>
            <GrandChild>element content</GrandChild>
        </Child>
    </Root>

Dim dnas = From node In xmlTree.DescendantNodes _
           Select node

For Each node In dnas
    If TypeOf node Is XElement Then
        Console.WriteLine(DirectCast(node, XElement).Name)
    Else
        Console.WriteLine(node)
    End If
Next

Det här exemplet genererar följande utdata:

Child
GrandChild
element content

Kommentarer

Observera att attribut inte anses vara noder i LINQ till XML, så de kommer inte att ingå i samlingen som returneras av den här metoden.

Den här metoden använder uppskjuten körning.

Gäller för

Se även