如何按名称应用模板?

时间:2017-10-04 10:56:49

标签: xml xslt

我有一个使用XML文件的XSL文件。 XSL文件需要两次显示XML文档中的信息,但每次都会略有不同。

如何声明具有相同匹配项的不同模板,但指定在使用<xsl:apply-templates select="...">...</>时要调用的模板

1 个答案:

答案 0 :(得分:2)

  

如何声明具有相同匹配项的不同模板,但是   指定我想在使用时调用哪个模板   ...

使用模式。在模板规则中:

<xsl:template match="xyz" mode="mode1"/>

在apply-templates调用中:

<xsl:apply-templates select="abc" mode="mode1"/>

在寻找最合适的时候&#34;模板规则,仅考虑适当模式下的模板规则。

所有XSLT版本都提供模式。在XSLT 3.0中,您可以声明模式的属性,例如

<xsl:mode name="mode1" streamable="yes" on-no-match="fail"/>