Florent Georges wrote:
Let's say I have a string of the form "a:b;c:d;" where there
can be any number of sub-parts of the form "x:y;", that I'd like
to parse using xsl:analyze-string. With the following regex:
^(([a-z]):([a-z]);)+$
which matches indeed, I cannot use the regex-groups to retrieve
all values. For instance the following:
<xsl:analyze-string select="'a:b;c:d;'"
regex="^(([a-z]):([a-z]);)+$">
<xsl:matching-substring>
<group num="0" value="{ regex-group(0) }"/>
<group num="1" value="{ regex-group(1) }"/>
<group num="2" value="{ regex-group(2) }"/>
Are my expectations wrong? If yes why? And if yes, is there
any general solution to this problem? (by "general", I mean not
recursing on the string and using substring on ';' because here
this is a simple delimiter)
Shouldn't it suffice to do
<xsl:analyze-string select="'a:b;c:d;'"
regex="([a-z]):([a-z]);">
<xsl:matching-substring>
<!-- now access groups here -->
</xsl:matching-substring>
</xsl:analyze-string>
then matching-substring is "called" for every part of the form "x:y;".
--
Martin Honnen --- MVP Data Platform Development
http://msmvps.com/blogs/martin_honnen/
--~------------------------------------------------------------------
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>
--~--