This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: for-each...
- From: Joshua dot Kuswadi at BTFinancialgroup dot com
- To: xsl-list at lists dot mulberrytech dot com
- Date: Thu, 20 Dec 2001 09:57:57 +1100
- Subject: RE: [xsl] for-each...
- Reply-to: xsl-list at lists dot mulberrytech dot com
Gabor wrote:
> i have a tree of <chapter>s in my xml files,
> and i use this code to generate chapter numbers ( like chapter 1.5.3):
>
> <xsl:template name = "chapter-prefix">
> <xsl:for-each select="ancestor-or-self::chapter">
> <xsl:value-of
> select="count(preceding-sibling::chapter)+1" />
> <xsl:text>.</xsl:text>
> </xsl:for-each>
> </xsl:template>
>
> and it works...
> but it generates for example. 1.5.4. and i want 1.5.4 , i don't need
> that last dot.
>
> i know i can do it like this:
>
> <xsl:template name = "chapter-prefix">
>
> <xsl:variable name="temp">
> <xsl:for-each select="ancestor-or-self::chapter">
> <xsl:value-of
> select="count(preceding-sibling::chapter)+1" />
> <xsl:text>.</xsl:text>
> </xsl:for-each>
> </xsl:variable>
> <xsl:value-of select="substring($temp,0,string-length($temp))"/>
>
> </xsl:template>
A suggestion, since you only want the dot/period when there are further child <chapter> elements, try this?
<xsl:template name = "chapter-prefix">
<xsl:for-each select="ancestor-or-self::chapter">
<xsl:value-of select="count(preceding-sibling::chapter)+1" />
<xsl:if test="chapter">
<xsl:text>.</xsl:text>
</xsl:if>
</xsl:for-each>
</xsl:template>
HTH,
Joshua
------------------------------------------------------------------------------
This message and any attachment is confidential and may be privileged or otherwise protected from disclosure. If you have received it by mistake please let us know by reply and then delete it from your system; you should not copy the message or disclose its contents to anyone.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list