Subject: Re: [xsl] Calculate the average line length within variable name="lines" as="element()*" not including the last line From: Martin Honnen <Martin.Honnen@xxxxxx> Date: Mon, 12 Apr 2010 11:57:27 +0200 |
<xsl:variable name="lines" as="element()*"> <xsl:analyze-string select="text()" regex="'"> <xsl:non-matching-substring> <xsl:element name="line"> <xsl:attribute name="length" select="string-length(normalize-space(.))"/> <xsl:attribute name="text" select="."/> </xsl:element> </xsl:non-matching-substring> </xsl:analyze-string> </xsl:variable>
I can get the average like so including the last line
<xsl:variable name="averageLineLength" select="round(avg($lines/@length))" as="xs:double"/>
I can get the last line length without error
<xsl:variable name="averageLineLength" select="round(avg($lines[last()]/@length))" as="xs:double"/>
However in the case where my number lines is greater than 2 <xsl:when test="$numberLines ge 2"> I don't want to include the last line as part of my count and was trying the following
<xsl:variable name="averageLineLength" select="round(avg($lines[last()]/preceding-sibling::node()/@length))" as="xs:double"/>
Which gives me the error:
Description: An empty sequence is not allowed as the value of variable $averageSpaceNormalizedLineLength
Martin Honnen http://msmvps.com/blogs/martin_honnen/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Calculate the average line le, Alex Muir | Thread | Re: [xsl] Calculate the average lin, Alex Muir |
Re: [xsl] mixed content grouping by, James Cummings | Date | Re: [xsl] mixed content grouping by, David Carlisle |
Month |