dot.count

dot.count — Returns the number of . characters in a string

Description

Given a string, the dot.count template returns the number of dot/period characters in the string. This template is useful, for example, when testing the nesting level of nested inline markup (for nested emphasis, quotations, etc.).

<xsl:template name="dot.count">
  <!-- Returns the number of "." characters in a string -->
  <xsl:param name="string"></xsl:param>
  <xsl:param name="count" select="0"></xsl:param>
  <xsl:choose>
    <xsl:when test="contains($string, '.')">
      <xsl:call-template name="dot.count">
        <xsl:with-param name="string" select="substring-after($string, '.')"></xsl:with-param>
        <xsl:with-param name="count" select="$count+1"></xsl:with-param>
      </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="$count"></xsl:value-of>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>