length-units

length-units — Return the units from a length specification

Description

The length-units template returns the units ("pt" for "20pt") from a length. If no units are supplied on the length, the defauilt.units are returned.

<xsl:template name="length-units">
  <xsl:param name="length" select="'0pt'"></xsl:param>
  <xsl:param name="default.units" select="'px'"></xsl:param>
  <xsl:variable name="magnitude">
    <xsl:call-template name="length-magnitude">
      <xsl:with-param name="length" select="$length"></xsl:with-param>
    </xsl:call-template>
  </xsl:variable>

  <xsl:variable name="units">
    <xsl:value-of select="substring($length, string-length($magnitude)+1)"></xsl:value-of>
  </xsl:variable>

  <xsl:choose>
    <xsl:when test="$units = ''">
      <xsl:value-of select="$default.units"></xsl:value-of>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="$units"></xsl:value-of>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>