Verwenden der XPath-Funktion fn: Ersetzen von XSLT

Ich versuche, XSLT zu verwenden, um ein einfaches XML-Schema in HTML zu konvertieren, und beabsichtige, es zu verwendenfn:replace Rücksendungen ersetzen (\n) mit<p>;. Ich kann jedoch nicht herausfinden, wie diese Funktion richtig verwendet wird.

Eine vereinfachte Version von XSLT, die ich verwende, lautet:

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

Und der Eingang zu dieser XLST ist z.B.

<?xml version="1.0"?>

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

Die Konvertierung schlägt fehlfn:replace mit einer NoSuchMethodException. Wenn ich die Ersetzungsanweisung in ändere

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

Ich erhalte eine IllegalArgumentException. Wie verwende ichfn:replace um zu erreichen, was ich will?

Ich benutzeButterfly XML Editor um das XSLT zu testen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage