Как привязать внешнюю переменную XQuery в Zorba из PHP?

#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());
  

Помогает ли это?