Subject: Re: [xsl] Please look at my mini-template From: Hermann Stamm-Wilbrandt <STAMMW@xxxxxxxxxx> Date: Sat, 16 May 2009 02:34:08 +0200 |
Dmitri, if you do not want to directly output the converted hex string as David pointed out a more comprehensive solution is using a func:function: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:func="http://exslt.org/functions" xmlns:ns="namespace" > <xsl:output method="xml" /> <xsl:template match="/hex2path"> <xsl:value-of select="ns:hex2path(.)" /> </xsl:template> <func:function name="ns:hex2path"> <xsl:param name="str" /> <xsl:choose> <xsl:when test="(string-length($str) > 2)"> <func:result select="concat(substring($str, 1, 2), '/', ns:hex2path(substring($str, 3)))" /> </xsl:when> <xsl:otherwise> <func:result select="$str" /> </xsl:otherwise> </xsl:choose> </func:function> </xsl:stylesheet>> Mit besten Gr|_en / Best wishes, Hermann Stamm-Wilbrandt Developer, XML Compiler WebSphere DataPower SOA Appliances ---------------------------------------------------------------------- IBM Deutschland Research & Development GmbH Vorsitzender des Aufsichtsrats: Martin Jetter Geschdftsf|hrung: Erich Baier Sitz der Gesellschaft: Bvblingen Registergericht: Amtsgericht Stuttgart, HRB 243294 ----- Forwarded by Hermann Stamm-Wilbrandt/Germany/IBM on 05/16/2009 02:30 AM ----- Dmitri Snytkine <d.snytkine@gmail .com> To xsl-list 05/16/2009 01:41 <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> AM cc Subject Please respond to [xsl] Please look at my xsl-list@xxxxxxxx mini-template lberrytech.com Hello! I needed this functionality: Given the input of a HEX number (example 2A32BF42) I needed to split the string in such a way that a '/' is inserted after every 2 characters except that the '/' should NOT be added at the end of string. So 2A32BF42 has to become 2A/32/BF/42 This had to be done in XSLT 1 because its for browser-based transformations. I wrote a template for this and want to hear the opinion of the experts. I just started learning XSLT about a week ago. So what do you think? Here it is: <xsl:template name="hex2path"> <xsl:param name="left" select="''"/> <xsl:param name="right"/> <xsl:choose> <xsl:when test="(string-length($right) > 2)"> <xsl:call-template name="hex2path"> <xsl:with-param name="left"> <xsl:value-of select="concat($left, concat(substring($right, 1, 2), '/'))"/> </xsl:with-param> <xsl:with-param name="right"> <xsl:value-of select="substring($right, 3)"/> </xsl:with-param> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="concat($left, $right)"/> </xsl:otherwise> </xsl:choose> </xsl:template>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Please look at my mini-te, David Carlisle | Thread | Re: [xsl] Please look at my mini-te, Dmitri Snytkine |
Re: [xsl] processing multiple value, G. Ken Holman | Date | Re: [xsl] Please look at my mini-te, Dmitri Snytkine |
Month |