Subject: [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 09:42:09 +0000 |
Hi, I'm trying to calculate the average line length in variable lines , not including the last line, where the new line is represented by a placeholder ' I store each line in an element and capture it's length and text which works fine. <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 What am I doing wrong? Thanks -- Alex https://sites.google.com/a/utg.edu.gm/alex Some Good Music http://sites.google.com/site/greigconteh/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] mixed content grouping by, Michael Kay | Thread | Re: [xsl] Calculate the average lin, Martin Honnen |
Re: [xsl] mixed content grouping by, James Cummings | Date | Re: [xsl] mixed content grouping by, James Cummings |
Month |