2

我在使用重氮进行克隆时遇到问题。

我的页面模板中有 <esi:include> 标签,但是当我使用 diazo 时,所有这些标签都会被 <include> 替换,即使我是否使用 mode="raw" 也是如此。

我发现了一个丑陋的解决方法:

<xsl:template css:match="include">
    <xsl:text disable-output-escaping="yes">&lt;esi:include src="</xsl:text>
    <xsl:value-of select="@src" />
    <xsl:text disable-output-escaping="yes">">&lt;/esi:include></xsl:text>
</xsl:template>

但是当 html 以 mode="raw" 放置时,<include> 标签不会被 <esi:include 替换。

任何想法?

非常感谢。

4

1 回答 1

2

如果您希望以原始模式处理裸 XSL,您需要将 method="raw" 添加到您的 xsl:template 标记。您可能需要有两种版本的模板标签,一种用于 method="raw",另一种用于默认(无方法属性)。

XSL 中的模板仅在其方法匹配时才匹配。如果apply模板标签中没有指定apply方法,则该方法为“default”。

当您在 Diazo 中指定 'mode="raw"' 时,它会将 method="raw" 放在应用模板调用中,这会跳过大多数后处理,包括您未指定 method="raw" 的任何 XSL 模板。

于 2013-08-08T17:13:45.183 回答