none
XSLT 语法详解: xsl:apply-templates RRS feed

  • 常规讨论

  • XSLT 语法详解: xsl:apply-templates
    <xsl:apply-templates>   指示XSLT处理器对节点集应用适当的模板。
    必需属性:无
    可选属性:
      (1) select : 包含一个XPath表达式,选定应用模板的节点集。 当其值为星号(*)时,表示选择所有的节点。当没有select属性时,表示选择当前节点的所有子节点。

      (2)mode: 定义处理的模式,可针对不同的目的编写不同的模板。例如,可以写一个模板<xsl:template> 带有mode="toc" 来处理文档中某个table元素的一个子节点,而其他的模板<xsl:template>带有 mode="print", mode="online" 或 mode="index"等来处理同样的信息,但是处理形式不同。

      元素<xsl:apply-templates> 能包括任意数量的<xsl:sort> 和<xsl:with-param>元素,但是大部分情况下,<xsl:apply-templates>元素是空的。

    示例代码:
    <xsl:template match="/">
      <xsl:apply-templates select="tutorial" mode="build-main-index"/>
      <redirect:write select="concat($curDir, $fileSep, 'index.html')">
        <xsl:apply-templates select="tutorial" mode="build-main-index"/>
      </redirect:write>
      <xsl:apply-templates select="tutorial" mode="build-section-indexes"/>
      <xsl:apply-templates select="tutorial" mode="build-individual-panels"/>
      <xsl:apply-templates select="tutorial" mode="generate-graphics"/>
      <xsl:apply-templates select="tutorial" mode="generate-pdf-file">
        <xsl:with-param name="page-size" select="'ltr'"/>
      </xsl:apply-templates>

      <xsl:apply-templates select="tutorial" mode="generate-pdf-file">
        <xsl:with-param name="page-size" select="'a4'"/>
      </xsl:apply-templates>
      <xsl:apply-templates select="tutorial" mode="generate-zip-file"/>
    </xsl:template>
    2009年6月1日 1:46