XQuery中的动态谓词

XQuery中的动态谓词,xquery,basex,Xquery,Basex,我注意到一个事实,当谓词有要比较的动态字段时,它就不起作用了 例如: db:open("library")//book[$filterFields = $pattern] 为此,我得到了0个结果 但是,当我将示例category替换为$filterField时,我得到了一些结果 如何使用谓词中的变量作为字段?如果假定$filterFields包含元素名称列表,则可以使用以下查询: db:open("library")//book [*[name() = $filterFields] =

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

例如:

  db:open("library")//book[$filterFields = $pattern]
为此,我得到了0个结果

但是,当我将示例category替换为$filterField时,我得到了一些结果


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

如果假定
$filterFields
包含元素名称列表,则可以使用以下查询:

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

好的有简短的代码片段是很好的,但如果您有进一步的问题,请确保您的查询可以编译。这通常有助于理解您想要实现的目标。例如,由于未声明
$filterFields
$pattern
,代码段将引发错误。