XQuery 中的动态谓词

Dynamic predicate in XQuery

我注意到一个事实,即当谓词具有要比较的动态字段时,它不起作用。

例如:

  db:open("library")//book[$filterFields = $pattern]

为此我得到 0 个结果,

但是当我输入类别而不是 $filterField 时,我得到了一些结果。

如何将谓词中的变量用作字段?

如果 $filterFields 应该包含元素名称列表,您可以使用以下查询:

db:open("library")//book
  [*[name() = $filterFields] = $pattern]