我想在不使用递归的情况下从给定节点获取所有子节点直到离开。那可能吗?我知道如何在 LINQ to XML 中执行此操作,但是 XmlNode:S 有一些问题
问问题
5320 次
2 回答
6
您可以将该SelectNodes
方法与选择所有后代的 XPath 表达式一起使用:
XmlNodeList result = myXmlNode.SelectNodes("descendant::node()");
如果您想更具体地过滤并需要提供任何命名空间前缀,请确保使用其他重载。
更新:这只会选择非属性节点,因为您的问题不要求属性。不过可以通过修改 XPath 表达式来实现:
XmlnodeList result = myXmlNode.SelectNodes("descendant::node() | descendant::*/@*");
于 2012-08-02T14:11:29.673 回答
1
您可以使用递归或 XPath 表达式:
我不太擅长 XPath,但类似:
var nodes = myDoc.SelectNodes("//*");
(编辑:这个似乎工作)
于 2012-08-02T14:11:26.997 回答