exists-db基数为参数

时间:2017-12-23 14:41:51

标签: exist-db cardinality xquery-3.0

我是exists-db和XQuery的新手。

在exists-db中我有这个站点地图:目录“registranten”包含目录“data”(带有xml文件)和两个文件“regBasic.xql”和“regSearch.xql”。

我正在尝试使用脚本regSearch.xql搜索xml文件:

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:ERROR XPTY0004:参数2的实际基数与函数签名中声明的基数不匹配:ft:query($ nodes as node(), $ query as item())node()。预期基数:正好一个,得到0. [第17行,第100列,来源:/db/apps/registranten/regSearch.xql]“

这是什么意思以及脚本有什么问题?

1 个答案:

答案 0 :(得分:4)

您的$searchphrase变量是一个空序列,这可能表示您没有使用request:get-parameter()设置您要求的请求参数。