|
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 |