0

我的 xslt 模板如下所示:

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

</xsl:template>

以上是有效的 xslt 模板吗?如何/何时可以调用此模板?它没有名称,只有一个匹配项,并且匹配项有一个参数。

4

1 回答 1

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选择表达式是在调用的上下文中计算的,而不是模板应用到的目标节点。与 一样call-template,任何未使用显式设置的参数都将采用模板中元素上的表达式with-param指定的默认值(在目标的上下文中评估,而不是调用)selectxsl:param

于 2013-02-07T09:21:08.777 回答