|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Creating Fixed-Width Text Data
You can do it without recursion by calculating $column-width - $text-width and then using substring on a constant of a whole lot of spaces to get the right amount of padding. (I build the padding constant with a one-off recursion but you could just hard code it) Below is what I'm using to do left, right and centre alignment. Fully justified is not worth the effort at the moment :-) Peter <xsl:variable name="MAX_WIDTH" select="100"/> <xsl:variable name="LEFT" select="'Left'"/> <xsl:variable name="RIGHT" select="'Right'"/> <xsl:variable name="CENTRE" select="'Centre'"/> <xsl:variable name="PADDING"> <xsl:call-template name="Repeat"> <xsl:with-param name="count" select="$MAX_WIDTH"/> </xsl:call-template> </xsl:variable> <xsl:template name="Align"> <xsl:param name="alignment" select="$LEFT"/> <xsl:param name="width"/> <xsl:param name="text"/> <xsl:variable name="paddingwidth"> <xsl:choose> <xsl:when test="$alignment = $RIGHT"> <xsl:value-of select="$width - string-length($text)"/> </xsl:when> <xsl:when test="$alignment = $CENTRE"> <xsl:value-of select="($width - string-length($text)) div 2"/> </xsl:when> <xsl:otherwise>0</xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:value-of select="substring($PADDING, 1, $paddingwidth)"/> <xsl:value-of select="$text"/> </xsl:template> <xsl:template name="Repeat"> <xsl:param name="char" select="' '"/> <xsl:param name="count"/> <xsl:if test="$count"> <xsl:value-of select="$char"/> <xsl:call-template name="Repeat"> <xsl:with-param name="char" select="$char"/> <xsl:with-param name="count" select="$count - 1"/> </xsl:call-template> </xsl:if> </xsl:template> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
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
|

Cart








