Re: [xsl] line numbering

Subject: Re: [xsl] line numbering
From: James Cummings <James.Cummings@xxxxxxxxxxxxxx>
Date: Thu, 5 Aug 2004 14:39:41 +0100 (BST)
On Thu, 5 Aug 2004, David Carlisle wrote:

> <xsl:variable name="linenumber" select="count(preceding-sibling::l)+1"/>
> <span class="line" id="line{$linenumber}"><xsl:apply-templates /></span>
> 
> 
> doesn't that want to be
> 
> <xsl:variable name="linenumber" 
>   select="count(../preceding-sibling::lg/l)+count(preceding-sibling::l)+1"/>
> 
> (or you could use xsl:number level=any from=div )
> 
> <xsl:choose>
> <xsl:when test="$linenumber mod 5 = 1">
> <span class="line" id="line{$linenumber}">...
> </xsl:when>
> <xsl:otherwise>
> <span class="line">....

Yup that seems to be what I've come up with a few minutes 
after posting (*doh*)  What I've done is:
--------------
<xsl:template match="l">
<xsl:variable name="poemnumber"><xsl:number level="any" count="div[@type='poem']"/></xsl:variable>
<xsl:variable name="linenumber"><xsl:number level="any" from="div[@type='poem']"/></xsl:variable>
<span class="line" id="poem{$poemnumber}line{$linenumber}">
<xsl:apply-templates />
<xsl:if test="$linenumber mod 5 = 0">
<span class="linenumber"><xsl:value-of select="$linenumber"/></span>
</xsl:if>
</span>
</xsl:template>
-------------

Does that seem reasonable?

It appears to give me the required results at least. 

Many thanks David, as always,

-James

---
Dr James Cummings, Oxford Text Archive, University of Oxford
James dot Cummings at oucs dot ox dot ac dot uk 

Current Thread