获取给定XmlNode的所有后代

Nic*_*kon 3 c# xml xmlnode

我想让所有的孩子从给定节点到叶子而不使用递归.那可能吗?我知道如何在LINQ to XML中执行此操作,但是在XmlNode:S中存在一些问题

O. *_*per 6

您可以将该SelectNodes方法与选择所有后代的XPath表达式一起使用:

XmlNodeList result = myXmlNode.SelectNodes("descendant::node()");
Run Code Online (Sandbox Code Playgroud)

如果要更具体地过滤并且需要提供任何名称空间前缀,请确保使用其他重载.

更新:这将只选择非属性节点,因为您的问题不要求属性.但是,通过修改XPath表达式可以:

XmlnodeList result = myXmlNode.SelectNodes("descendant::node() | descendant::*/@*");
Run Code Online (Sandbox Code Playgroud)