Table 的圣经目录(使用 xsl-fo apache)

Table of Contents for Bible (with xsl-fo apache)

我需要一个table的内容,内容是根据圣经书籍来定位的。目前我每次都手动这样做,但是在很长的时间里运行我会出错,这当然很耗时。

它应该是这样的:

我已经在一本书中读到过,但不幸的是没有进一步。

这是代码:

 <xsl:template match="Kapitel">
    <fo:block>
    <xsl:apply-templates select="Titel" mode="Kap-Titel"/>
    </fo:block>
    <xsl:for-each selcet="Abschnitt">
    <xsl:call-template name ="IVZ-Eintrag"/>
    </xsl:for-each>
    <xsl:apply-templates/>
    </xsl:template>
    <xsl:template match="Kapitel/Titel"/>


<xsl:template name="IVZ-Eintrag">
<fo:block text-align-last="justify">
<xsl:apply-templates selcet="Titel" mode="IVZ-Titel"/>
<fo:leader/>
<fo:page-number-citation ref-id="{generate-id()}"/>
</fo:block>
</xsl:template>

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

在这里您可以立即编辑它 https://xsltfiddle.liberty-development.net/nb9PtDi/120

我觉得应该是

  <xsl:template match="BIBLEBOOK">
    <fo:block keep-with-next.within-page="always" span="all" font-size="{$Schriftgroesse} * 1.4" line-height="{$Schriftgroesse} * 1.3" font-weight="bold" text-align="center" space-after="-1mm" space-before="1mm" space-after.precedence="1">
      <xsl:apply-templates select="@bname"/>
      </fo:block>
      <!-- create the table of contents -->
      <fo:block page-break-after="always">
            <xsl:apply-templates select="CHAPTER" mode="toc"/>
      </fo:block>
  <!-- do the document -->
    <fo:block font-family="{$Schriftname}" font-style="{$Schriftschnitt}" font-size="{$Schriftgroesse}" line-height="{$Zeilenhoehe}" page-break-inside="auto">
      <xsl:apply-templates select="./CHAPTER"/>
    </fo:block>
  </xsl:template>
      
<xsl:template match="CHAPTER" mode="toc">
  <fo:block text-align-last="justify">
    <fo:basic-link internal-destination="{generate-id(.)}">
      <xsl:number level="single" count="CHAPTER"/>
      <xsl:text> </xsl:text>
      <fo:leader leader-length.minimum="12pt" leader-length.optimum="40pt"
               leader-length.maximum="100%" leader-pattern="dots"/>
      <xsl:text> </xsl:text>
      <fo:page-number-citation ref-id="{generate-id(.)}"/>
    </fo:basic-link>
  </fo:block>
</xsl:template>

  <xsl:template match="/XMLBIBLE/BIBLEBOOK/CHAPTER">
    <fo:block id="{generate-id()}">...