[xquery-talk] If Statements within an If Statement?
Wei, Alice J.
ajwei at indiana.edu
Wed Apr 2 09:19:38 PST 2008
Hi, XQueriers:
This may be a simple problem, but it appears that I have either missed something or have problems figuring out what a certain function means.
Here is my function:
declare function local:searchresult($seq as element()*) as element()*
{
let $a := collection("my")//ad//address[contains(upper-case(.),$search)],
$b := collection("my")//ad//p[contains(upper-case(.),$search)],
$c := collection("my")//ad//address[contains(upper-case(.),$search5)],
$d := collection("my")//ad//p[contains(upper-case(.),$search5)]
let $sorted_result:=
for $doc in distinct-values($seq)
order by $doc
return $doc
for $d at $count in $sorted_result
let $head := $seq[.=$d][1]/ancestor::ad//child::head[1]
let $head2 := $seq[.=$d][1]/ancestor::ad//child::head[2]
let $head3 := $seq[.=$d][1]/ancestor::ad//child::head[3]
let $para := $seq[.=$d][1]/ancestor::ad//child::p
order by $d
return
<div><p>Showing Result: <b>{$count} / {count($sorted_result)}</b></p>
<p style="font-weight:bold">{$head}  {$head2}  {$head3}</p>
<p>{$para}</p>
</div>
};
local:searchresult($a union $d
I would like to have this so that it can say something like
return
if (count($sorted_result) lt 1)
then <p>Sorry, no results retrieved.</p>
else if (count($sorted_result) gt 200)
then <p>Sorry, too many results returned.</p>
else
<div><p>Showing Result: <b>{$count} / {count($sorted_result)}</b></p>
<p style="font-weight:bold">{$head}  {$head2}  {$head3}</p>
<p>{$para}</p>
</div>
My problem is
(1) When I tried to do a count of the result in the first if statement, it does not even show anything. (Is this another XPath problem?)
(2) Is this syntax accurate?
Any suggestion is appreciated.
Alice
======================================================
Alice Wei
MIS 2008
School of Library and Information Science
Indiana University Bloomington
ajwei at indiana.edu
More information about the talk
mailing list