我想知道XPath表达式/
是否是位置步骤。
我知道/
用于从根节点中进行选择,而位置步骤则具有轴,节点测试和零个或多个谓词。因此,我认为这两者是无关的,并且XPath表达式/
不是位置步骤。
我的想法是否正确?
答案 0 :(得分:2)
/
本身不是一个步骤,而是在XPath的生产26 http://www.w3.org/TR/2007/REC-xpath20-20070123/#doc-xpath-RelativePathExpr中定义的步骤分隔符。
根据生产25,允许以/
开头的表达式,并从根节点开始计算表达式。但是/
它实际上不是一个步骤,只是root(self::node()) treat as document-node()
的缩写,如果还有另一个步骤,可选地后跟/
。
请注意,//
是/descendent-or-self::node()/
的语法缩写。
在所有情况下,位置路径地址的缩写部分的扩展都在评估之前发生。