路径表达式

路径表达式用于在XML树中定位节点。 XQuery 中的路径表达式基于XPath 2.0 的语法。

路径表达式由一系列由斜杠(/)或两个斜杠(//)分隔的步骤组成。路径可以由斜杠(/)、两个斜杠(//)或步骤开头。 路径表达式中的两个斜杠字符(//)扩展为/descendant-or-self::node()/,从而留下由斜杠字符(/)分隔的一系列步骤。一个步骤生成一系列项目。 路径表达式中的步骤从左到右进行评估。 步骤生成的序列项用作后续步骤的上下文节点。 例如,在表达式 description/name 中,第一步生成一个包含所有 description 元素的节点序列。 最后一步是对序列中的每个 description 项目进行一次 name 元素评估。 每次评估 name 元素时,评估的重点都不同,直到所有 name 元素都评估完毕。 将每次评估步骤的结果进行组合,并根据节点标识消除重复节点。

路径表达式开头的斜杠(/)表示路径将从包含上下文节点的树的根节点开始。 该根节点必须是一个文档节点。

限制 :在 Db2XQuery 路径表达式中不能包含逗号操作符。

建议 :斜线字符既可以用作运算符,也可以用作操作数,因此当斜线字符用作运算符的第一个字符时,请使用括号来明确其含义。 例如,要将空路径表达式指定为乘法运算的左操作数,请使用 (/)*5 而不是 /*5。 后面的表达式会导致错误。 由于路径表达式具有更高的优先级,因此 Db2 将此表达式解释为带有通配符的路径表达式,用于名称测试(/* ),后面是标记5。

路径表达式开头的两个斜线(//)表示初始节点序列,其中包含上下文节点所在的树根以及该树根的所有子节点。 此节点序列用作路径表达式后续步骤的输入。 该根节点必须是一个文档节点。

路径表达式的值是路径最终步骤产生的项的组合序列。 该值是一系列节点或一个原子值。 同时返回节点和原子值的路径表达式会产生错误。

一个步骤由一个轴步骤或一个过滤器表达式组成。

语法

path-expression
阅读语法图跳过可视化语法图 /// 步骤/步骤//步骤
步骤
阅读语法图跳过可视化语法图过滤表达式轴步

示例

使用路径表达式确定哪些股票至少有一个出价高于该股票的某个报价。

//stock[bid/xs:double(price) > offer/price]/@stock_id