Subject: [xsl] Re: RE: creating a string of repeated charactors From: Dimitre Novatchev <dnovatchev@xxxxxxxxx> Date: Mon, 16 Jul 2001 02:03:20 -0700 (PDT) |
Tim Watts wrote: [snip] > The EXSLT function <xsl:value-of select="str:padding(10, '*')" /> function > is the sort of thing I hoped might exist in *standard* XSLT. > > Since there isn't I'll use the template that you pointed me to instead. > (Thanks for saving me from writing it! :) ) > > I was hoping that there might me a less verbose way of doing what really is > quite a simple task. This template is "verbose" by necessity -- it solves the ***general*** case, when neither the filling characters, nor an upper limit for the length are nown in advance. It is also quite space-consuming (and time) -- because the string length is doubled until a larger string is constructed, this will use twice as much memory, as necessary for the resulting string. In many cases one knows in advance that he'll only need a string of upto N characters. Then, a much simpler solution is to have a global variable pre-defined, containing the maximum string: <xsl:variable name="maxString" select="****************************"/> and you'll construct any necessary string of length k <= N by simply: <xsl:variable name="myRepeatingString" select="substring($maxString, 1, $k)"/> In case you'd need repeating different character patterns at different times, but still have a clear estimation of the upper limit for the resulting string length, you can have a separate template, that will accept the character and the length as parameters and will: <xsl:variable name-maxString" select="concat($c,$c,$c,$c,$c,$c, ..., $c,$c)"/> N times ------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ <xsl:value-of select="substring($maxString, 1, $k)"/> I believe that a sensible implementation of concat() will use less memory (than the exslt str:padding template requires) in building the above concatenation string. Cheers, Dimitre Novatchev. __________________________________________________ Do You Yahoo!? Get personalized email addresses from Yahoo! Mail http://personal.mail.yahoo.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Another (hopefully not st, Christian Cäsar | Thread | compiled stylesheets was Re: [xsl] , cutlass |
Re: [xsl] Another (hopefully not st, David Carlisle | Date | RE: [xsl] And while you're figuring, Daniel Newman |
Month |