标题很奇怪,但是......
在Exist-db中
如何在同一页面上正常调用函数。只需在XML中显示evrythink,然后再使用XPath点击hiperlink调用self ..
我有这个功能。 Meaby它是完全治疗的...我... ...
declare function app:WyswietlAkweny($loc, $evtObj) {
<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>
<th><a href="TO THE PARRENT"><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>
};
这是我的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>
</akweny>
</akwen>
<akwen>
<nazwa>Spokojny</nazwa>
<typ>ocean</typ>
<powierzchnia>179700</powierzchnia>
</akwen>
</akweny>
所以问题是,当我点击“KLIK”时,它必须只显示找到任何元素 akweny ,其元素 akwen 且重复到结束元素与nazwa子元素的值为当前点击元素 akwen
总之,当我选择nazwa = Batyckie时,它应该显示下面的所有节点。
有什么想法吗?
PS。 nazwa =波兰语中的名字
答案 0 :(得分:0)
我不确定我能理解你的XML或者你想要导航到什么,但是从一个查询到另一个查询的超链接,它只是所有直接的HTTP。例如你可以做一些改变这样的事情:
<th><a href="TO THE PARRENT"><img src="/exist/apps/Obrazki/lupa.jpg" alt="Podrzedny" /> KLIK</a></th>
为:
<th><a href="/exist/rest/db/myquery.xqy?search=parent&current={util:node-id($x)}"><img src="/exist/apps/Obrazki/lupa.jpg" alt="Podrzedny" /> KLIK</a></th>
显然,您需要将/db/myquery.xqy
替换为XQuery的路径。在您的XQuery中,您可以使用if / else来决定是否使用参数调用它并采取不同的操作过程。 e.g:
if(request:get-parameter("search", ()) eq "search" and request:get-parameter("current", ()))then
let $current := util:node-by-id(doc("/db/Dane/akweny.xml"), request:get-parameter("current", ()))
return
$current (: TODO do something to find the parent instead! :)
else
(: TODO whatever you are already doing :)
虽然我使用util:node-id
和util:node-by-id
从一个查询链接到另一个查询,但我不建议这样做,因为这些ID不稳定。相反,您应该将ID添加到您有兴趣直接寻址的每条记录的XML中并使用它们。