XContainer.DescendantNodes 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
按文档顺序返回此文档或元素的子代节点集合。
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)
返回
XNode 的 IEnumerable<T>,其中按文档顺序包含 XContainer 的子代节点。
示例
以下示例创建一个 XML 树,然后循环访问 DescendantNodes 轴。
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
该示例产生下面的输出:
Child
GrandChild
element content
注解
请注意,特性不被视为LINQ to XML中的节点,因此它们不会是此方法返回的集合的一部分。
此方法使用延迟执行。