This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
xsl not powerfull enough (was: re: xsl-sort)
- To: xsl-list at lists dot mulberrytech dot com
- Subject: [xsl] xsl not powerfull enough (was: re: xsl-sort)
- From: Goetz Bock <bock at blacknet dot de>
- Date: Sat, 23 Dec 2000 17:45:18 +0100
- References: <200012230730.CAA21500@biglist.com> <001001c06ce7$11e85d60$572f39cf@gwis.com>
- Reply-To: xsl-list at lists dot mulberrytech dot com
On Sat, Dec 23 '00 at 08:48, Jack A. Zucker wrote:
> Maybe I need to do more homework but it seems that xslt is not a very rich
> programming language for general-purpose stuff which is why I was previously
> using script to do certain things. For example, how do you output a number
> as a hex string in xsl(t) without resorting to indexing into an array of
> characters representing the hex digits?
The same way you do it with any other programmin language that does not
bring a function for this (how did you do it?):
<xsl:template name="printHex">
<xsl:param name="number">0</xsl:param>
<xsl:variable name="low">
<xsl:value-of select="$number mod 16"/>
</xsl:variable>
<xsl:variable name="high">
<xsl:value-of select="floor($number div 16)"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$high > 0">
<xsl:call-template name="printHex">
<xsl:with-param name="number">
<xsl:value-of select="$high"/>
</xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:text>0x</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="$low < 10">
<xsl:value-of select="$low"/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="temp">
<xsl:value-of select="$low - 10"/>
</xsl:variable>
<xsl:value-of select="translate($temp, '012345', 'ABCDEF')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
It XSL-T's div would have been a div and not a / this would have taken
about 5 min ...
Goetz.
PGP signature