我的 xslt 模板如下所示:
<xsl:template match="text()">
<xsl:param name="precedingPStyle" select="preceding-sibling::aic:pstyle[position()=1]/@name"/>
</xsl:template>
以上是有效的 xslt 模板吗?如何/何时可以调用此模板?它没有名称,只有一个匹配项,并且匹配项有一个参数。
我的 xslt 模板如下所示:
<xsl:template match="text()">
<xsl:param name="precedingPStyle" select="preceding-sibling::aic:pstyle[position()=1]/@name"/>
</xsl:template>
以上是有效的 xslt 模板吗?如何/何时可以调用此模板?它没有名称,只有一个匹配项,并且匹配项有一个参数。
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
选择表达式是在调用的上下文中计算的,而不是模板应用到的目标节点。与 一样call-template
,任何未使用显式设置的参数都将采用模板中元素上的表达式with-param
指定的默认值(在目标的上下文中评估,而不是调用)select
xsl:param