Re: [xsl] Including markup in a replace string (follow-up)

Subject: Re: [xsl] Including markup in a replace string (follow-up)
From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 6 Oct 2016 15:43:24 -0000
>   In my first post I asked if there was a way to trick the replace function
so I could output markup in the replacement string. I have since solved my
problem using xsl:analyze-string. I thought Ibd post the solution since it
involved escaping the curly braces that I was looking for.
>
> Herebs a snippet of the input string. Itbs from a test file so the text
is bogus:
>
>    datalines;
>       {{This variable}} is the catbs meow
>
> And herebs the analize-string I used to get the results I needed:
>
>   <xsl:analyze-string select="." regex="([{{]{{2}}|[}}]{{2}})">

The doubling is because curly brackets are special in XSLT attribute value
templates. The square brackets are because curly brackets are special in
regular expressions (to match "{" the regex needs to be either "\{" or
"[{]".)

I would probably write this one as

<xsl:variable name="regex">\{\{|\}\}</xsl:variable>
<xsl:analyze-string regex="{$regex}">...

Michael Kay
Saxonica

Current Thread