xsl-list
[Top] [All Lists]

Re: [xsl] xsl:analyze-string explanation needed

2006-07-20 06:59:02

are you saying that I should change the regex so that it matches the
entire input string rather than the part I'm interested in, 

yes
then there will only be one substring aafter the regex analysis, either
1 matching substring (the whole string) or one none matching substring.


<xsl:stylesheet version="2.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema";
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>


<xsl:template name="main">
  <xsl:for-each select="(
                        '3 minutes 57 seconds',
                        '3 minutes',
                        '5 seconds',
                        'rubbish')">

:<xsl:value-of select="."/>
:::    <xsl:analyze-string select="." regex="([0-9]+) minutes.*$">
      <xsl:matching-substring>
        <xsl:value-of select="60 * xs:integer(regex-group(1))" />
      </xsl:matching-substring>
      <xsl:non-matching-substring>0</xsl:non-matching-substring>
    </xsl:analyze-string>
    
  </xsl:for-each>
  
</xsl:template>

</xsl:stylesheet>




$ saxon8 -it main regex.xsl 
<?xml version="1.0" encoding="UTF-8"?>

:3 minutes 57 seconds
:::    180

:3 minutes
:::    180

:5 seconds
:::    0

:rubbish
:::    0

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--