我在理解这个XPATH表达式/语法时遇到了一些困难

时间:2011-09-19 09:02:19

标签: xml xpath

这是用于选择节点的xpath。

document.SelectNodes("my/node/url/@*[name(.)!='name_excluded']");

我可以理解 @ * !='' 但我无法掌握 [name(。)some predicate]

我在XPath (w3 org)

找不到(。)的引用

2 个答案:

答案 0 :(得分:2)

谓词中的

.引用当前节点(它是AbbreviatedStep

name()是一个接受节点集的函数(这里,我们将它传递给上下文节点)并返回其名称

因此,您理解的缺失部分是:我们将返回任何属性(@*),因为属性的名称不是name_excluded。< / p>

答案 1 :(得分:1)

@*选择所有url个节点的所有属性。然后,对于每个属性,name(.)都是其名称,因此这将选择除url属性之外的name_excluded个节点的所有属性。