Subject: Re: [xsl] how to check if each char in a given string is a letter or a digit? From: Joerg Heinicke <joerg.heinicke@xxxxxx> Date: Fri, 09 Aug 2002 14:11:53 +0200 |
Hello, everyone, I have a string like this: C12H10N2
Using xlt and fo, I need to display all digit characters smaller and lower than letters. To check if a character in the string is a digit, I have the code like this: <xsl:template name="formatFormula"> <xsl:param name="formula"/>
<xsl:if test="string-length($formula)>0"> <xsl:variable name="firstChar"> <xsl:value-of select="substring($formula,1,1)"/> </xsl:variable>
<xsl:choose>
<!-- ???? Not work as I want ??? --> <xsl:when test="translate($firstChar,'0123456789','9')='9'">
<fo:inline font-size="8" color="red" vertical-align="sub"><xsl:value-of select="$firstChar"/></fo:inline> </xsl:when> <xsl:otherwise> <fo:inline font-size="10"><xsl:value-of select="$firstChar"/></fo:inline> </xsl:otherwise> </xsl:choose> </xsl:if>
<!-- calling itself recursively --> <xsl:if test="string-length($formula)>1"> <xsl:call-template name="formatFormula"> <xsl:with-param name="formula"> <xsl:value-of select="substring($formula, 2)"/> </xsl:with-param>
</xsl:call-template> </xsl:if> </xsl:template>
But the result is that only the char '0' get translate and thus get detected as a digit. All other digits are not detected. Any better solutions?
Thanks in advance for your help.
Biying
System Development VIRBUS AG Fon +49(0)341-979-7419 Fax +49(0)341-979-7409 joerg.heinicke@xxxxxxxxx www.virbus.de
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] how to check if each char in , Biying Huang | Thread | RE: [xsl] how to check if each char, TSchutzerWeissmann |
RE: [xsl] how to check if each char, TSchutzerWeissmann | Date | Re: [xsl] Impact of xml doc size on, Jeff Kenton |
Month |