<xsl:template match="root">
<html>
<body>
<xsl:call-template name="msg">
<xsl:with-param name="title">A Title</xsl:with-param>
<xsl:with-param name="body">Body: <xsl:value-of select="node"
/></xsl:with-param>
</xsl:call-template>
</body>
</html>
</xsl:template>
<xsl:template name="msg">
<xsl:param name="title" />
<xsl:param name="body" />
> <p><strong><xsl:apply-templates select="$title" /></strong></p>
> <p><em><xsl:apply-templates select="$body" /></em></p>
> </xsl:template>
>
> </xsl:stylesheet>
Both parameters store Result Tree Fragments in them. They can only be
evaluated to strings.
You have 2 possibilities:
1. Change the RTFs to node sets, but this does not make sense in your
case I think. The needed extension functions are mostly called node-set().
2. Do not use apply-templates, but value-of.
> <p><strong><xsl:value-of select="$title" /></strong></p>
> <p><em><xsl:value-of select="$body" /></em></p>
Furthermore you can then avoid the RTF to string conversion, you can
store the strings directly:
> <xsl:with-param name="title" select="'A Title'"/>
> <xsl:with-param name="body" select="concat('Body: ', node)"/>
Regards,
Joerg
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list