Subject: RE: Fixed-length String Output From: Nate Austin <naustin@xxxxxxxxxxxxxxx> Date: Thu, 5 Oct 2000 09:09:08 -0500 |
Deirdre - Here are the string padding functions that I use frequently: <xsl:template name="prepend-pad"> <!-- recursive template to right justify and prepend--> <!-- the value with whatever padChar is passed in --> <xsl:param name="padChar"> </xsl:param> <xsl:param name="padVar"/> <xsl:param name="length"/> <xsl:choose> <xsl:when test="string-length($padVar) < $length"> <xsl:call-template name="prepend-pad"> <xsl:with-param name="padChar" select="$padChar"/> <xsl:with-param name="padVar" select="concat($padChar,$padVar)"/> <xsl:with-param name="length" select="$length"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="substring($padVar,string-length($padVar) - $length + 1)"/> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="append-pad"> <!-- recursive template to left justify and append --> <!-- the value with whatever padChar is passed in --> <xsl:param name="padChar"> </xsl:param> <xsl:param name="padVar"/> <xsl:param name="length"/> <xsl:choose> <xsl:when test="string-length($padVar) < $length"> <xsl:call-template name="append-pad"> <xsl:with-param name="padChar" select="$padChar"/> <xsl:with-param name="padVar" select="concat($padVar,$padChar)"/> <xsl:with-param name="length" select="$length"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="substring($padVar,1,$length)"/> </xsl:otherwise> </xsl:choose> </xsl:template> These will both ensure that the string ends up to be whatever length you pass in (ie. if the string is longer than expected it will also truncate). I hope this helps. -Nate The opinions expressed are my own and do not reflect those of Decision Systems, Inc. >Date: Wed, 4 Oct 2000 16:27:36 +0100 >From: "Deirdre O'Brien" <ddo@xxxxxxx> >Subject: Fixed-length String Output > >Hi, > >I am trying to transform an incoming XML message to a format that will be >acceptable to our existing software package. However the existing package >excepts data on a fixed-length basis. This is the way we wish to continue. > >I was wondering is there a way to force the output of select statement to >take up a certain amount of space. Not all of the elements will be >numbers. What I need is something like the format-number function but for >strings. I taught maybe there might be an attribute in value-of that would >do it, but there doesn't appear to be. Is there anything currently >available in XSLT that would do this for me? I am using the Xalan >processor. > >Thanks for the help I have received so far. I have ordered a copy of "XSLT >Programmer's Reference". This hopefully will enable me to answer my own >questions. > >Thanks again, >Deirdre O'Brien XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: Fixed-length String Output, DuCharme, Robert | Thread | where to put the filter?, Keith |
RE: A doubt in XML, Rajeev Dubey | Date | Problem using templates, David Delgranche |
Month |