diff software/eXist/webapp/mpdl/_stuff/futureDev/highlight-matches-test.xql @ 7:5589d865af7a

Erstellung XQL/XSL Applikation
author Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
date Tue, 08 Feb 2011 15:16:46 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/software/eXist/webapp/mpdl/_stuff/futureDev/highlight-matches-test.xql	Tue Feb 08 15:16:46 2011 +0100
@@ -0,0 +1,21 @@
+xquery version "1.0";
+
+declare namespace xlink = "http://www.w3.org/1999/xlink";
+declare namespace docc = "http://www.mpiwg-berlin.mpg.de/ns/mpdl/docc"; 
+
+declare function docc:tagmatch($term as xs:string, $node as text(), $args as item()+) as element() {
+  <span class="match">{$term}</span>
+}; 
+
+(: was originally in page-query-result.xql, does not work because match-any does not deliver results because fragment is not in fulltext index  :)
+
+let $retPageFragment := 
+  if ($mode = "image")
+  then ()
+  else doc:getFragmentBetween($docPath, "pb", $pn, $pn + 1)
+
+let $returnPageFragmentTemp := util:parse($retPageFragment)  (: string2xml: returns a valid xml document for that string   :)
+
+let $hitTemp := $returnPageFragmentTemp[match-any(.,"di")]
+let $callback := util:function(QName("http://www.mpiwg-berlin.mpg.de/ns/mpdl/docc", "docc:tagmatch"), 3)
+let $returnPageFragment := text:highlight-matches($hitTemp, $callback, ())