[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Please look at my mini-template
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 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>
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|