Re: [xsl] Including markup in a replace string

Subject: Re: [xsl] Including markup in a replace string
From: "Heiko Niemann kontakt@xxxxxxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 6 Oct 2016 13:32:27 -0000
Yes if you can use analyze-string:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="2.0">
  <xsl:output method="xml" encoding="UTF-8"/>
  <xsl:template match="/">
    <body>
      <xsl:analyze-string select="'my text has {{ many curly }} braces
lots more {{ than }}  I expected'" regex="{'\{\{|\}\}'}">
        <xsl:matching-substring>
          <span class="noProcess">
            <xsl:value-of select="."/>
          </span>
        </xsl:matching-substring>
        <xsl:non-matching-substring>
          <xsl:value-of select="."/>
        </xsl:non-matching-substring>
      </xsl:analyze-string>
    </body>
  </xsl:template>
</xsl:stylesheet>

outputs


<body>my text has
  <span class="noProcess">{{</span> many curly
  <span class="noProcess">}}</span> braces lots more
  <span class="noProcess">{{</span> than
  <span class="noProcess">}}</span> I expected
</body>


Heiko


> Hi All,
>   I have code examples in some doc that are post processed in AngularJS.
> In some cases the code examples include "{{" or "}}" which is
> significant to Angular. I have a simple replace that I am using to wrap
> a no-process span around the curly braces so the Angular process will
> ignore them.
>
>   <xsl:value-of select="replace(.,'(\{\{|\}\})','&lt;span
> class=&quot;noProcess&quot;&gt;$1&lt;/span&gt;')"/>
>
>   The only problem is that the character entity is being output as a
> character entity instead of less-than and greater-than characters.
>
>   Is there a way to trick replace into outputting the less-than and
> greater-than characters?
>
>   I've tried entering the actual characters - doesn't work. I've tried
> escaping the characters with backslashes - doesn't work either.
>
>   So unless there's a way to trick replace I'll have to try analyze-string
> and see if I can get what I need there.
>
> Thanks,
>   Craig
>
> Here's an example of what I need:
>
> <span class="noProcess">{{</span>This variable<span
> class="noProcess">}}</span>

Current Thread