Usando a função XPath fn: replace from XSLT

Estou tentando usar o XSLT para converter um esquema XML simples em HTML e planejei usarfn:replace para substituir retornos (\n) com<p>;. No entanto, não consigo descobrir como usar essa função corretamente.

Uma versão simplificada do XSLT que estou usando lê:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0" 
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
                xmlns:fn="http://www.w3.org/2005/xpath-functions">
  <xsl:template match="/root">
    <html>
      <body>
        <!-- Replace \n with <p> -->
        <xsl:value-of select="fn:replace(value, '\n', '<p>')" />
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

E a entrada para este XLST é por exemplo:

<?xml version="1.0"?>

<root>
  <value><![CDATA[
    Hello
    world!
  ]]></value>
</root>

A conversão falha emfn:replace com um NoSuchMethodException. Se eu alterar a instrução de substituição para

<xsl:value-of select="fn:replace('somestring', '\n', '<p>')" />

Eu recebo uma IllegalArgumentException. Como usofn:replace para conseguir o que eu quero?

estou a usarButterfly XML Editor para testar o XSLT.

questionAnswers(2)

yourAnswerToTheQuestion