|
Subject: Re: [xsl] analyze-string gotcha/reminder From: John Lumley <John.Lumley@xxxxxxxxxxxxxx> Date: Tue, 20 Nov 2012 13:35:41 +0000 |
A useful technique I've found with a multi-case xsl:analyze-string is to use a set of variables for each of the regex alternatives and then join them for a composite alternative expression, viz:Yep, or the usual way is to put the regex in the content of a variable with as="xs:string":
<xsl:variable name="regex" as="xs:string"> no need to worry about anything here </xsl:variable>
<xsl:variable name="r1">\d+</xsl:variable>
<xsl:variable name="r2">[A-Za-z]+</xsl:variable>
....
<xsl:analyse-string select="." regex="{string-join(($r1,$r2),'|')}">
<xsl:matching-substring>
<xsl:choose>
<xsl:when test="matches(.,$r1)">It's a number</xsl:when>
<xsl:when test="matches(.,$r2)">A word this time....</xsl:when>
.......
This has three advantages:
i) you only define each case once,
ii) dealing with entities such as quotes is much easier and
iii) it's much clearer what the alternatives are.-- John Lumley MA PhD CEng FIEE john@xxxxxxxxxxxxxx
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] analyze-string gotcha/rem, Andrew Welch | Thread | Re: [xsl] analyze-string gotcha/rem, Ihe Onwuka |
| Re: [xsl] Basic template matching i, Ruud Grosmann | Date | RE: [xsl] Basic template matching i, An OldBloke |
| Month |