Xml 如何使用Exist DB和Xquery以及Xpath调用函数中的函数

Xml 如何使用Exist DB和Xquery以及Xpath调用函数中的函数,xml,function,xpath,xquery,exist-db,Xml,Function,Xpath,Xquery,Exist Db,我在函数中发现了一些关于调用函数的想法,但我得到了以下错误: NotFound No template function found for call app:PokazRodzica 但是首先。这是我的主要功能 declare function app:WyswietlAkweny($node as node(), $model as map(*), $nazwa as xs :string?) { <table border="1" width="1

我在函数中发现了一些关于调用函数的想法,但我得到了以下错误:

NotFound No template function found for call app:PokazRodzica
但是首先。这是我的主要功能

    declare function app:WyswietlAkweny($node as node(), $model as map(*), $nazwa as xs
    :string?) {

        <table border="1" width="100%">
        <th>Podrzędne</th><th>Nazwa</th><th>Typ</th><th>Powierzchnia</th><th>Edycja</th>
        {
            for $x in doc('/db/Dane/akweny.xml/')//akwen
            let $nazwa := $x/nazwa,
                $typ := $x/typ,
                $powierzchnia := $x/powierzchnia
                return <tr>
(:~ THIS DOSENT WORK :)
                    <th><a href="{app:PokazRodzica($nazwa)}"><img src="/exist/apps/Obrazki/lupa.jpg" alt="Podrzedny" /> KLIK</a></th>
                    <th bgcolor="#F46978">{$nazwa}</th>
                    <th>{$typ}</th>
                    <th>{$powierzchnia}</th>
                    <th>Edytuj</th>
                    </tr>
        }
        </table>
    };
声明函数app:WyswietlAkweny($node作为node(),$model作为map(*),$nazwa作为xs
:字符串?){
PodrzędneNazwaTypPowierzchniaEdycja
{
在doc('/db/Dane/akweny.xml/')//akwen中的$x
设$nazwa:=$x/纳兹瓦,
$typ:=$x/类型,
$Povierzchnia:=$x/Povierzchnia
返回
(:~这部作品:)
{$nazwa}
{$typ}
{$Povierzchnia}
艾迪图吉
}
};
这是我按下图像时想要运行的功能

declare function app:PokazRodzica($nazwa1 as xs:string?)  {


<table border="1" width="100%">
<th>Podrzędne</th><th>Nazwa</th><th>Typ</th><th>Powierzchnia</th><th>Edycja</th>
{
let $nodes := doc('/db/Dane/akweny.xml')//akweny[parent::akwen/nazwa=$nazwa1]
for $x in $nodes/*
let $nazwa := $x/nazwa/text()
let $typ := $x/typ/text()
let $powierzchnia := $x/powierzchnia/text()
    return 
       <tr>
        <th><img src="/exist/apps/Obrazki/lupa.jpg" alt="Podrzedny" /> {count($nazwa/text())} KLIK</th>
        <th bgcolor="#F46978">{$nazwa}</th>
        <th>{$typ}</th>
        <th>{$powierzchnia}</th>
        <th>Edytuj</th>
        </tr>
}</table>
};
声明函数app:PokazRodzica($nazwa1为xs:string?){
PodrzędneNazwaTypPowierzchniaEdycja
{
让$nodes:=doc('/db/Dane/akweny.xml')//akweny[parent::akwen/nazwa=$nazwa1]
对于$x,在$nodes中/*
让$nazwa:=$x/nazwa/text()
设$typ:=$x/typ/text()
让$povierzchnia:=$x/povierzchnia/text()
返回
{count($nazwa/text())}KLIK
{$nazwa}
{$typ}
{$Povierzchnia}
艾迪图吉
}
};
这是我的XML文件:

<?xml version="1.0" encoding="utf-8"?>
<akweny>
    <akwen>
        <nazwa>Atlantycki</nazwa>
        <typ>ocean</typ>
        <powierzchnia>106450</powierzchnia>
        <akweny>
            <akwen>
                <nazwa>Północne</nazwa>
                <typ>morze</typ>
                <powierzchnia>750</powierzchnia>
            </akwen>
            <akwen>
                <nazwa>Batyckie</nazwa>
                <typ>morze</typ>
                <powierzchnia>386</powierzchnia>
                <akweny>
                    <akwen>
                        <nazwa>Botnicka</nazwa>
                        <typ>zatoka</typ>
                        <powierzchnia>117</powierzchnia>
                    </akwen>
<akweny>
                        <akwen>
                        <nazwa>Botnicka</nazwa>
                        <typ>zatoka3</typ>
                        <powierzchnia>11777</powierzchnia>
                        </akwen>
</akweny>
                </akweny>
            </akwen>
        </akweny>
    </akwen>
    <akwen>
        <nazwa>Spokojny</nazwa>
        <typ>ocean</typ>
        <powierzchnia>179700</powierzchnia>
    </akwen>
</akweny>

亚特兰蒂斯基
海洋
106450
波诺科内
桑泽
750
巴蒂基
桑泽
386
博特尼卡
扎托卡
117
博特尼卡
zatoka3
11777
斯波科尼
海洋
179700
我这样调用MAIN函数:

<p class="app:WyswietlAkweny"/>


我正试图找到任何一个akweny的父母akwen有一个nazwa的孩子和一个价值$nazwa1的无穷大。

我想我现在理解了这个问题。我怀疑您希望在用户查看网页时单击此锚定标记时调用此函数并返回其值:

<a href="{app:PokazRodzica($nazwa)}">
然后在端点脚本中,
调用app PokazRodzica.xqy
,接受一个
参数,并调用您的函数:

app:PokazRodzica($value-param)

现在,当用户单击锚点时,它将调用端点并向其传递值。浏览器随后将返回端点调用的结果。

这些函数返回表,但您正在将其输出存储在属性中。我怀疑这是你的意图,但还不清楚。那怎么把它弄干净呢?这差不多完成了。在exist db中,我遇到了这个错误:HTTP错误404访问/exist/apps/AkwenyXML/call-app-PokazRodzica.xqy时出现问题。原因:Document/db/apps/AkwenyXML/call-app-PokazRodzica.xqy没有发现在同一页面上运行此功能的机会?@Brieg您遇到的问题很可能与HTTP服务器配置有关。是的,您可以让端点调用本身。路径更可能是错误的@Brieg,请告诉您的老师,他/她必须先教他/她的学生一些基本的XQuery,并练习如何在不使用eXist db模板框架的情况下设置应用程序-对于那些了解一些编程(其他语言)的人来说,模板框架可能很难理解。如果你想让别人帮你做作业,你的问题就必须更清楚。你应该相信那些帮助过你的人,而不是别人帮助过你的代码。
app:PokazRodzica($value-param)