Pregunta bastante simple, ¿cómo puedo transformar un número (1, 2, 3, etc.) en un número ordinal fácil de imprimir (1º, 2º, 3º, etc.) usando xslt?Cómo transformar un número (1,2,3, etc.) en un número ordinal (1º, 2º, 3º, etc.) usando xslt
Actualmente las siguientes obras de 1-20, pero que podríamos estar viendo grandes conjuntos de entidades conseguir el puesto pronto:
<xsl:template name="FormatRanking">
<xsl:param name="Value"></xsl:param>
<xsl:choose>
<xsl:when test="$Value = '1'">
<xsl:value-of select="$Value"/>st
</xsl:when>
<xsl:when test="$Value = '2'">
<xsl:value-of select="$Value"/>nd
</xsl:when>
<xsl:when test="$Value = '3'">
<xsl:value-of select="$Value"/>rd
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$Value"/>th
</xsl:otherwise>
</xsl:choose>
</xsl:template>
La única manera me gustaría saber cómo hacer esto sería cambiar el XSL: cuando de :
<xsl:when test="$Value = '1'">
<xsl:when test="$Value = '2'">
<xsl:when test="$Value = '3'">
a (ni siquiera estoy seguro si esto es correcto):
<xsl:when test="$Value = '1' or $Value = '21' or $Value = '31' ...">
<xsl:when test="$Value = '2' or $Value = '22' or $Value = '33' ...">
<xsl:when test="$Value = '3' or $Value = '22' or $Value = '33' ...">
me gustaría hacerlo Mething similar a este Is there an easy way to create ordinals in C#? pero no estoy seguro de si es posible en Xslt.
En este punto, solo necesitamos una solución en inglés.
Tu fe en las habilidades de XSLT es conmovedora, si no es realista – skaffman
@skaffman: Supongo que estás subestimando las capacidades de XSLT. – Tomalak
Después de todo, XSLT supuestamente está completo. – Eric