Generování obsahu II.

Příklad 11. Řešení pomocí for:each

<xsl:template match="/">
  ...
  <fo:block>Obsah</fo:block>
  <xsl:for-each select="kniha/kapitola">
    <fo:block text-align-last="justify">
      <fo:basic-link 
          internal-destination="{generate-id(.)}">
        <xsl:value-of select="název"/>
      </fo:basic-link>
      <fo:leader leader-pattern="dots"/>
      <fo:page-number-citation ref-id="{generate-id(.)}"/>
    </fo:block>
    <xsl:for-each select="podkapitola">
      <fo:block start-indent="1em" 
                text-align-last="justify">
	<fo:basic-link 
            internal-destination="{generate-id(.)}">
	  <xsl:value-of select="název"/>
	</fo:basic-link>
	<fo:leader leader-pattern="dots"/>
	<fo:page-number-citation ref-id="{generate-id(.)}"/>
      </fo:block>
    </xsl:for-each>
  </xsl:for-each>

  <xsl:apply-templates/>
  ...
</xsl:template>

<xsl:template match="kapitola">
  <fo:block ... id="{generate-id(.)}">
    <xsl:apply-templates/>
  </fo:block>
</xsl:template>

<xsl:template match="podkapitola">
  <fo:block ... id="{generate-id(.)}">
    <xsl:apply-templates/>
  </fo:block>
</xsl:template>