3

我想知道 XPath 表达式是否/是一个位置步骤。

我知道它/用于从根节点中进行选择,而位置步骤有一个轴、一个节点测试和零个或多个谓词。因此,我认为这两者是不相关的,并且 XPath 表达式/不是定位步骤。

我的想法正确吗?

4

1 回答 1

2

/本身不是一个步骤,而是XPath的生产 26 http://www.w3.org/TR/2007/REC-xpath20-20070123/#doc-xpath-RelativePathExpr中定义的一个步骤分隔符。

根据产生式 25,允许以 a 开头的表达式/,并且从根节点开始计算表达式。但/它实际上不是一个步骤,只是 的缩写,如果有另一个步骤,则root(self::node()) treat as document-node()可选地后跟。/

请注意,这//是 . 的语法缩写/descendent-or-self::node()/

在所有情况下,位置路径地址的缩写部分的扩展发生在评估之前。

于 2013-07-29T20:49:40.067 回答