xsl:template内容

<xsl:template> 元素

<xsl:template> 元素定义了用于匹配节点的规则(match,其中"/"匹配整个文档),在apply-template使用

语法规则为:

<xsl:template
name="name"
match="pattern"
mode="mode"
priority="number">
<!-- Content:(<xsl:param>*,template) -->
</xsl:template>

  其中:
  name 模板名称
  match Xpath语句,指定条件
  mode模式,例如红,蓝等样式
  priority 指定模板的优先级,为数字。

如果每个模板都赋予了优先级,则处理器可以使用这个值来确定哪个模板具有最高优先级。如果没有显式指定优先级,则处理器会为模板计算一个默认值。由处理器指定的默认优先级范围是从 -0.5 到 +0.5。基本上,模式越特殊,其默认优先级就越高。由于范围是从 -0.5 到 +0.5,因此如果显式指定一个模板的优先级为 1,就总会超过默认优先级。

当一个节点匹配在 XSLT 模板中建立的多个模式(也称为规则)时,处理器就会按照 XSLT 规范中描述的冲突解决指导原则来确定使用哪一个模式。这些指导原则表明,当发生冲突时,会调用优先级最高的模板。然而,确定模板实际优先级的算法还需要附带解释一下。

要确定哪个模板具有最高优先级,处理器首先会消除导入的所有模板(使用 xsl:import 元素);自动导入的模板比经过导入转换的模板优先级低。然后处理器确定其余模板的优先级值。

当出现冲突时,XSLT 需要经过大量处理才能确定调用哪个模板。

<xsl:apply-templates>元素

<xsl:apply-templates>元素用于告诉处理器处理当前节点的所有子节点。在匹配的节点模板中还可以再包含<xsl:apply-templates>元素,从而通知处理器处理该节点的所有子节点,这样依次调用,就可以完成对文档树中所有节点处理。


note:
<xsl:template match="node()|@*">
      <xsl:copy>
         <xsl:apply-templates select="node()|@*"/>
      </xsl:copy>
    </xsl:template>表示处理所有结点

<xsl:template match="你定义的"/>表示过滤,不做任何处理

猜你喜欢

转载自zaq369cde.iteye.com/blog/1893465
xsl