我想知道 XPath 表达式是否/
是一个位置步骤。
我知道它/
用于从根节点中进行选择,而位置步骤有一个轴、一个节点测试和零个或多个谓词。因此,我认为这两者是不相关的,并且 XPath 表达式/
不是定位步骤。
我的想法正确吗?
它/
本身不是一个步骤,而是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()/
。
在所有情况下,位置路径地址的缩写部分的扩展发生在评估之前。