Можно ли с помощью xquery (BaseX) оценить сложное выражение xpath, хранящееся в переменной?

Я пытаюсь сделать что-то подобное в xquery (работаю с basex)

let $node := doc('doc.xml')//*:root
let $xpath := "descendant::*:path/*:to/*:node"

let $val := $node//$xpath

Это возможно с помощью functx: dynamic-path

let $val := functx:dynamic-path($node, $xpath)

но этот не позволяет многого

Функция поддерживает только имена элементов и имена атрибутов, которым предшествует @, разделенные одинарной косой чертой. Имена могут иметь префикс, но они должны использовать тот же префикс, который используется во входном документе. Он не поддерживает предикаты, другие оси или другие типы узлов. Обратите внимание, что у большинства процессоров есть функция расширения, которая динамически вычисляет выражения пути гораздо более полным образом.

Знаете ли вы какую-либо другую функцию, которая могла бы помочь?


person G.P    schedule 24.05.2019    source источник
comment
См. docs.basex.org/wiki/XQuery_Module#xquery:eval.   -  person Martin Honnen    schedule 24.05.2019


Ответы (1)