Subject: [xsl] how to check if each char in a given string is a letter or a digit? From: Biying Huang <biying.huang@xxxxxxxxxxxxxxx> Date: Fri, 09 Aug 2002 07:57:51 -0400 |
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 XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] RE: Re: off-subject: xslt, bryan | Thread | Re: [xsl] how to check if each char, Joerg Heinicke |
[xsl] Impact of xml doc size on tra, Jitu | Date | RE: [xsl] how to check if each char, TSchutzerWeissmann |
Month |