2

Does it pull all node types supported by Xpath? Seems that when I call

selectNodes("@")

it just returns the elements that contain the attributes, but I want to get the list of attributes themselves. In other words I would expect the resulting node collection to contain nodes of type Attr only...but that does not seem to work.

4

3 回答 3

1

foreach(XmlAttribute att in selectNodes(" * /@ * ")) ...

于 2011-03-10T07:53:11.853 回答
0

选择context node属性的正确 XPath 语法是:

@*

或者

attribute::*

但请注意,只有元素可能具有属性。因此,如果上下文节点是文档根,那么您当然不会选择任何内容。

如果您想要文档中的所有属性,请使用:

//@*

这将扩展为:

/descendant-or-self::node()/attribute::*
于 2011-03-10T17:54:17.290 回答
0

从文档:

选择与 XPath 表达式匹配的节点列表。

而 Attributes 属性(节点的)

获取包含此节点的属性的 XmlAttributeCollection。

http://msdn.microsoft.com/en-us/library/system.xml.xmlnode.attributes.aspx

要获取文档中的所有属性(我认为这就是您想要做的?)您可能想尝试

选择节点(“@*”)

于 2011-03-10T07:41:12.283 回答