[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

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


Subject: Re: [xsl] Calculate the average line length within variable name="lines" as="element()*" not including the last line
From: Alex Muir <alex.g.muir@xxxxxxxxx>
Date: Mon, 12 Apr 2010 10:44:17 +0000

Thanks, that could be useful however now seems my problem is counting
the number of lines accurately.

I am trying to do a count of the number lines however perhaps this is
not correct way to count the number of lines accurately in the lines
variable

 <xsl:variable name="numberLines" select="count($lines)" as="xs:integer"/>

I then do a check as follows before finding AvarageLineLength but
still get the empty sequence problem.

    <xsl:when test="$numberLines ge 2">
 <xsl:variable name="AvarageLineLength"
         select="round(avg($lines[last()]/preceding-sibling::node()/@length))
"
as="xs:double"/>
       <xsl:choose>

I tried the following as well with the same problem
<xsl:variable name="numberLines" select="count($lines/@length)"
as="xs:integer"/>

On Mon, Apr 12, 2010 at 10:19 AM, David Carlisle <davidc@xxxxxxxxx> wrote:
> 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.
> ________________________________________________________________________
>



--
Alex
https://sites.google.com/a/utg.edu.gm/alex

Some Good Music
http://sites.google.com/site/greigconteh/


Current Thread