Существующая мощность в дБ для параметра

Я новичок в Существовать-БД и XQuery.

В существующем-db у меня есть эта карта сайта: каталог "registranten" содержит каталог "data" (с xml-файлами) и два файла "regBasic.xql" и "regSearch.xql".

Я пытаюсь искать в xml-файлах, используя скрипт regSearch.xql:

xquery version "3.0";

declare option exist:serialize "method=xhtml media-type=text/html";
declare variable $pageTitle := "Resultat";
declare variable $searchphrase := request:get-parameter("searchphrase", ());

<html>
    <head>
        <meta HTTP-EQUIV="Content-Type" content="text/html; charset=UTF-8"/>
        <title>{$pageTitle}</title>
    </head>
    <body>
        <h1>{$pageTitle}</h1>
        <p>Søgestreng eller søgeord: "{$searchphrase}"</p>
        <ul>
        {
            for $p in collection("/db/registranten/data")//grundtvig/indholdsregest/p[ft:query(., $searchphrase)]
            return
                <li>
                    from: {string(root($p)/grundtvig/filnavn)}<br/>
                    <i>$p</i>
                </li>
        }
        </ul>
    </body>
</html>

Когда я оцениваю скрипт, я получаю эту ошибку: "exerr: ОШИБКА XPTY0004: Фактическое количество элементов для параметра 2 не соответствует количеству элементов, объявленному в сигнатуре функции: ft:query($node as node (), $ query as item ()) node (). Ожидаемая мощность: ровно один, получил 0. [в строке 17, столбец 100, источник: /db/apps/registranten/regSearch.xql]"

Что это значит и что не так со сценарием?

1 ответ

Решение

Ваш $searchphrase переменная - пустая последовательность, которая, вероятно, предполагает, что вы не установили параметр запроса, который вы запрашиваете с помощью request:get-parameter(),

Другие вопросы по тегам