Использование функции XPath fn: replace from XSLT

Я пытаюсь использовать XSLT для преобразования простой XML-схемы в HTML и планирую использоватьfn:replace заменить возврат (\n) с<p>;, Однако я не могу понять, как правильно использовать эту функцию.

Упрощенная версия XSLT, которую я использую, гласит:

<?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>

И вход в этот XLST, например:

<?xml version="1.0"?>

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

Преобразование завершается неудачноfn:replace с NoSuchMethodException. Если я заменю оператор замены на

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

Я получаю исключение IllegalArgumentException. Как я используюfn:replace добиться того, что я хочу?

я используюButterfly XML Editor проверить XSLT.

Ответы на вопрос(2)

Ваш ответ на вопрос