Die Verwendung von XPath-Funktion fn:replace von XSLT

Ich versuche, die Verwendung von XSLT-konvertieren ein einfaches XML-schema zu HTML und geplant, um fn:replace zu ersetzen gibt (\n) mit <p>;. Allerdings kann ich nicht herausfinden, wie Sie diese Funktion richtig.

Ist eine vereinfachte version des XSLT-ich bin mit liest:

<?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 diesem XLST ist z.B.:

<?xml version="1.0"?>

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

Die Konvertierung schlägt fehl, auf fn:replace mit einer NoSuchMethodException. Wenn ich die replace-Anweisung, um

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

Bekomme ich eine IllegalArgumentException. Wie verwende ich fn:replace zu erreichen, was ich will?

Ich bin mit Butterfly XML-Editor zum testen der XSLT -.

InformationsquelleAutor larsmoa | 2010-02-02
Schreibe einen Kommentar