2012-08-02 37 views

回答

6

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

XmlNodeList result = myXmlNode.SelectNodes("descendant::node()"); 

如果要更具体地过滤并需要提供任何名称空间前缀,请务必使用other overload

更新:这只会选择非属性节点,因为你的问题并不要求属性。尽管可以通过修改XPath表达式来实现:

XmlnodeList result = myXmlNode.SelectNodes("descendant::node() | descendant::*/@*"); 
1

您可以使用递归或XPath表达式:

我不是很擅长的XPath,但类似:

var nodes = myDoc.SelectNodes("//*"); 

(编辑:这一次似乎工作)

+0

但仅限于元素。 '*'不会选择其他类型的节点。 – 2012-08-02 14:18:28

+0

此外,您是否从文档中间的任意节点或仅从根节点尝试了此操作?我没有,文档也没有明确说明,但通常'//'意味着从根开始的所有事情都被考虑在内,而不仅仅是当前的子树。 – 2012-08-02 14:20:15

相关问题