Comment obtenir le dernier indice d'un caractère dans une chaîne de caractères?

J'ai la tâche suivante:

Il y a un élément xml contenant une longue chaîne. J'ai besoin d'utiliser xsl pour transformer cet élément dans un certain nombre de html <input> balises. Il fonctionne comme ceci: si la chaîne est plus longue que celle d'un <input> champ peut contenir sans défilement, je garde le même modèle de manière récursive pour créer un autre champ de saisie avec la remainig texte.

Le problème est que la chaîne est souvent coupée en deux au milieu de la parole qui n'est pas sympa.

Donc j'ai besoin de trouver la position de la dernière space caractère qui n'est pas plus grande que la taille de la sous-chaîne qui s'inscrit dans la <input> balise et d'imprimer uniquement la sous-chaîne avant sur la ligne.

J'ai donc préparer une sous-chaîne de longueur maximale, qui peut s'adapter dans le domaine, mais je n'ai aucune idée de comment faire pour obtenir l'index de la dernière space en elle et de le passer comme paramètre dans le prochain appel de la fonction.

UPD: voici ce que j'ai obtenu jusqu'à présent

<xsl:template name="multilineInput">
    <xsl:param name="input" select="."/>
    <xsl:param name="maxFirst" select="."/>
    <xsl:param name="firstLineWidth" select="."/>



    <input>
        <xsl:attribute name="readonly">readonly</xsl:attribute>
        <xsl:attribute name="class">input_multiline</xsl:attribute>
        <xsl:attribute name="style">width = "<xsl:value-of select="$firstLineWidth"/>"</xsl:attribute>
        <xsl:attribute name="type">text</xsl:attribute>
        <xsl:attribute name="value"><xsl:value-of select="substring($input, 1, $maxFirst)"/></xsl:attribute>
    </input>

    <xsl:if test="$maxFirst &lt; string-length($input)">
        <xsl:call-template name="multilineInput">
            <xsl:with-param name="input" select="substring($input, $maxFirst+1, string-length($input)-$maxFirst)"/>
            <xsl:with-param name="maxFirst" select="110"/>
            <xsl:with-param name="firstLineWidth" select="'980'"/>
        </xsl:call-template>
    </xsl:if>

</xsl:template>

OriginalL'auteur svz | 2012-09-28