Subject: RE: testing for numbers of nodes
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Sat, 10 May 2008 22:36:51 +0100
|
> The present code I've got (not working) is:
>
> <xsl:for-each select="sense_area"><xsl:text> </xsl:text>
> <xsl:for-each select="sense">
> <xsl:if test="count(sense) > I">(<xsl:number
> format="I"/>)</xsl:if> <xsl:apply-templates />
> </xsl:for-each>
> </xsl:for-each>
>
> Can someone perhaps see what is wrong with this?
>
Firstly, I assume you meant "> 1" rather than "> I".
Secondly, inside the for-each the context node is a sense element, so
count(sense) counts how many sense children that sense element has. Try:
<xsl:for-each select="sense_area"><xsl:text> </xsl:text>
<xsl:for-each select="sense">
<xsl:if test="last() > 1">(<xsl:number format="I"/>)</xsl:if>
<xsl:apply-templates />
</xsl:for-each>
</xsl:for-each>
Michael Kay
http://www.saxonica.com/
|