Я пытаюсь найти узел (с префиксом пространства имен), используя переменные в моем xquery, вот так:
declare variable $libx_ns as xs:string external;
declare namespace libx=$libx_ns;
declare variable $type as xs:string external;
return doc('xyz')/entry[libx:{$type}][1]
Значения параметра: $ libx_ns = 'http://libx.org/xml/libx2', $ type = libapp.Когда я запускаю этот xquery, я вижу следующую ошибку:
[XPST0003] Неполное выражение.
Приведенный выше код работает, если я изменяю последнюю строку следующим образом:
return doc('xyz')/entry[libx:libapp][1]
Цель состоит в том, чтобы использовать строковую переменную (например, $ type) для имени узла, а не жестко связывать его (например, libapp).Как мне это сделать?
Образец XML-документа:
<entry xmlns:libx="http://libx.org/xml/libx2">
<libx:libapp> First libapp </libx:libapp>
<libx:libapp> Second libapp </libx:libapp>
</entry>
Спасибо, Sony