javaxsltjaxp

XSL left-right justification with Padding


Is there any standard template in XSLT 1.0 available which does justification and pad the field to max length?


Solution

  • Unfortunately XSLT does not comes with the padding function, the good part is that is very simple to do so as pointed by this blog post: http://www.dpawson.co.uk/xsl/sect2/padding.html

    (Web archive version: http://web.archive.org/web/20171225234313/http://www.dpawson.co.uk/xsl/sect2/padding.html )

    For example if you want to right pad a 10 spaces string you can do:

    <xsl:value-of 
     select="substring(concat($string, '          '), 1, 10))"/>
    

    if you need a left pad you can change the order of the concat parameters as following:

    <xsl:value-of 
     select="substring(concat('          ', $string), 1, 10))"/>
    

    Notice that the string with spaces should contain the same amount of chars as your padding is needing, so if you want a 10 pad, you will need a 10 spaces string.