Я пытаюсь использовать XQuery с PHP.Единственная известная мне реализация - это XQuery_Lite, часть библиотеки XMLClasses, но я проклят, если смогу заставить ее что-либо делать.
Страница demo.php, которая идет с ошибками.Всякий раз, когда я пытаюсь выполнить один из приведенных здесь примеров, я получаю:
Warning: bib is not visible from here plase use a global string for XML data in
C:\xampp\htdocs\test\xquery\xquery_lite_2\class_xquery_lite.php on line 201
Warning: Invalid argument supplied for foreach() in
C:\xampp\htdocs\test\xquery\xquery_lite_2\class_xquery_lite.php on line 690
Затем я создаю этот очень простой сценарий (примечание: код взят из файла read-me PDF, а bib.xml делаетсуществовать):
<?php
$query = '<bib>
{
for $b in document("bib.xml")/bib/book
where $b/publisher = "Addison-Wesley" and $b/@year > 1991
return
<book year="{ $b/@year }">
{ $b/title }
</book>
}
</bib>';
$query = stripslashes($query);
include_once("class_xquery_lite.php");
$xq = new XqueryLite();
$result=$xq->evaluate_xqueryl($query);
?>
... но мне сказали, что foreach в строке 179 получает пустой массив.После некоторого копания это означает, что массив $ functions пуст (в основном скрипте class_xquery_lite.php).
Это все очень специфично, поэтому я не ожидаю, что кто-нибудь сможет здесь помочь, но вы никогда не знаете...