Hi all,
the more I work with xsl, the less I understand of it.
Who can explain why a regexp works with matches and the same doesnt with
analyze-string:
input
<doc>
<al>1. eerste alinea</al>
<al>2. tweede alinea</al>
<al>3. tweede alinea</al>
</doc>
stylesheet
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:my='http:/www.ruudgrosmann.nl/func'
exclude-result-prefixes="xs my">
<xsl:output indent='yes'/>
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="al">
<xsl:variable name='txt' select="./text()"/>
<xsl:variable name='re2'
select="concat('^(', '2\.)', '\s+(.*)$')"
as="xs:string"/>
<xsl:if test="matches($txt, $re2)">
<xsl:text>MATCH</xsl:text>
</xsl:if>
<xsl:analyze-string select="$txt" regex="$re2" >
<xsl:matching-substring>
<match/>
</xsl:matching-substring>
<xsl:non-matching-substring>
<no-match/>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:template>
</xsl:stylesheet>
output
<?xml version="1.0" encoding="UTF-8"?>
<no-match/>
MATCH<no-match/>
<no-match/>
For the second al element the regexp ( being ^(2\.)\s+(.*)$' ) works for
matches, but not for analyse-string (saxon 9B). I would expect a match
in both cases. What did I misunderstand?
thanks, Ruud
--~------------------------------------------------------------------
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>
--~--