我的xslt模板如下所示:
<xsl:template match="text()">
<xsl:param name="precedingPStyle" select="preceding-sibling::aic:pstyle[position()=1]/@name"/>
</xsl:template>
是否高于有效的xslt模板?如何/何时可以调用此模板?它没有名字,只有一个匹配,匹配有一个参数。
答案 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
表达式指定的默认值(即在目标的背景下评估,而不是呼叫)