如何调用没有名称的xslt模板?

时间:2013-02-07 09:17:26

标签: xslt

我的xslt模板如下所示:

<xsl:template match="text()">
        <xsl:param name="precedingPStyle" select="preceding-sibling::aic:pstyle[position()=1]/@name"/>

</xsl:template>

是否高于有效的xslt模板?如何/何时可以调用此模板?它没有名字,只有一个匹配,匹配有一个参数。

1 个答案:

答案 0 :(得分:1)

xsl:apply-templates当它是所选节点的最合适模板时,将调用它。如果没有任何其他更具体的模板,例如match="text()[normalize-space(.)]",则此模板将应用于所有文本节点。

对于参数,apply-templates支持with-param的方式与call-template完全相同。

<xsl:apply-templates select="*/text()">
  <xsl:with-param name="precedingPStyle" select="'normal'"/>
</xsl:apply-templates>

with-param select表达式在调用的上下文中计算,而不是模板应用的目标节点。与call-template一样,未使用显式with-param设置的任何参数都将采用模板中select元素上xsl:param表达式指定的默认值(即在目标的背景下评估,而不是呼叫)