xsl-list
[Top] [All Lists]

Re: [xsl] Calculate the average line length within variable name="lines" as="element()*" not including the last line

2010-04-12 05:19:56
On 12/04/2010 11:00, Alex Muir wrote:
<xsl:variable name="averageLineLength"

   select="round(avg($lines[last()]/preceding-sibling::node()/@length))"
 as="xs:double"/>


you have used an as attribute that says this mmust return one value but if $lines has less than two items
$lines[last()]/preceding-sibling::node()
will be empty, so avg() will get an empty sequence, and so return () so you fail the type check.

perhaps



select="(round(avg($lines[last()]/preceding-sibling::node()/@length)),0)[1]"

woul dbe what you want, returning 0 if there are no lines to average.

David

________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. ________________________________________________________________________

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--