#php #bind #external #xquery #zorba
#php #привязать #внешняя #xquery #zorba
Вопрос:
Может ли PHP API процессора Zorba XQuery привязываться к переменным, объявленным как external
в xquery?
Например, эта строка в xquery будет привязываться к внешней переменной с именем $foo
;
declare variable $foo as xs:string external;
Но я не могу найти пример в документации Zorba PHP API, показывающий, как выполнить PHP-часть привязки, чтобы переменная PHP $foo
была привязана к переменной xquery $foo
.
Можно ли это сделать?
Комментарии:
1. Посмотрите на
set_variable()
функцию в PHP API. Я не знаю этого специально для PHP, но в C API это есть.
Ответ №1:
Вы можете сделать следующее:
$query = $this->zorba->compileQuery("declare variable $i external; $i 1");
$dctx = $this->zorba->getDynamicContext();
$param = $this->zorba->compileQuery(".");
$itemFactory = $this->zorba->getItemFactory();
$value = $itemFactory->createString("1");
$param->getDynamicContext()->setContextItem($value);
$dctx->setVariable("", "i", $param->iterator());
Помогает ли это?