title: Special characters in XSL
body: <p>I'm working on a XSL 1.0 transformation to get HTML visualisation when displaying the XML in Firefox.
  In my original XML, I have characters like</p>
  
  <pre><code>&amp;amp;eacute; &amp;amp;egrave; &amp;amp;lsquo;...
  </code></pre>
  
  <p>I need to convert them into</p>
  
  <pre><code>é, è, ‘...
  </code></pre>
  
  <p>I have used this template :</p>
  
  <pre><code>&lt;xsl:template name="string-replace-all"&gt;
    &lt;xsl:param name="text" /&gt;
    &lt;xsl:param name="replace" /&gt;
    &lt;xsl:param name="by" /&gt;
    &lt;xsl:choose&gt;
      &lt;xsl:when test="contains($text, $replace)"&gt;
        &lt;xsl:value-of select="substring-before($text,$replace)" /&gt;
        &lt;xsl:value-of select="$by" /&gt;
        &lt;xsl:call-template name="string-replace-all"&gt;
          &lt;xsl:with-param name="text" select="substring-after($text,$replace)" /&gt;
          &lt;xsl:with-param name="replace" select="$replace" /&gt;
          &lt;xsl:with-param name="by" select="$by" /&gt;
        &lt;/xsl:call-template&gt;
      &lt;/xsl:when&gt;
      &lt;xsl:otherwise&gt;
        &lt;xsl:value-of select="$text" /&gt;
      &lt;/xsl:otherwise&gt;
    &lt;/xsl:choose&gt;
  </code></pre>
  
  <p>Calling for each special character (here for example &amp;egrave;) :</p>
  
  <pre><code>            &lt;xsl:variable name="newtext"&gt;
                &lt;xsl:call-template name="string-replace-all"&gt;
                  &lt;xsl:with-param name="text" select="$originaltext" /&gt;
                  &lt;xsl:with-param name="replace" select="'&amp;amp;egrave;'" /&gt;
                  &lt;xsl:with-param name="by" select="'è'" /&gt;
                &lt;/xsl:call-template&gt;
              &lt;/xsl:variable&gt;
  </code></pre>
  
  <p>Is there a solution where I can directly replace <code>&amp;amp;</code> into &amp; for example without the need to call the replacement template for each special character I expect to exist?</p>