仅当存在具有给定模式的模板时才应用XSLT模板

时间:2012-06-12 14:16:20

标签: xslt xslt-1.0

在我的网站的主XSLT模板中,我有:

<xsl:apply-templates select="/data" mode="page-scripts"/>

在导入上述主样式表的另一个页面上,我有一个插入一些JavaScript的模板:

<xsl:template match="/data" mode="page-scripts">
    <!-- JavaScript -->
</xsl:template>

在没有上述模板的页面上,根据默认模板输出data节点的内容。

如果不必使用与page-scripts模式匹配的空白模板,那么避免这种情况的好方法是什么?

2 个答案:

答案 0 :(得分:3)

  

在没有上述模板的页面上,数据的内容   节点根据默认模板输出。

     

什么是避免这种情况的好方法,而不必留空   与页面脚本模式匹配的模板?

除非覆盖它们,否则无法阻止选择执行XSLT内置模板。

一个好的解决方案是将“空白”覆盖模板放在“主”样式表本身中,从而避免在任何导入样式表中添加任何此类模板。

答案 1 :(得分:2)

抱歉,我刚刚找到答案here

我必须在我的主样式表中放置<xsl:template match="*" mode="page-scripts"/>来覆盖默认模板。