XContainer.DescendantNodes メソッド
定義
このドキュメントまたは要素の子孫ノードのコレクションをドキュメント順に返します。Returns a collection of the descendant nodes for this document or element, in document order.
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)
戻り値
IEnumerable<T> の子孫ノードをドキュメント順に格納している XNode の XContainer。An IEnumerable<T> of XNode containing the descendant nodes of the XContainer, in document order.
例
次の例では、XML ツリーを作成し、軸を反復処理し DescendantNodes ます。The following example creates an XML tree, and then iterates through the DescendantNodes axis.
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
この例を実行すると、次の出力が生成されます。This example produces the following output:
Child
GrandChild
element content
注釈
属性はのノードとは見なされない LINQ to XMLLINQ to XML ため、このメソッドによって返されるコレクションには含まれません。Note that attributes are not considered to be nodes in LINQ to XMLLINQ to XML, so they will not be part of the collection that is returned by this method.
このメソッドは遅延実行を使用します。This method uses deferred execution.