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.