次の形式の xml があります。 Chapter 1 Chapter 1.1
Chapter 1.1.1 Chapter 1.2
<CHAPTER>
<LONG-NAME>Chapter 2</LONG-NAME>
<CHAPTER>
<LONG-NAME>Chapter 2.1</LONG-NAME>
</CHAPTER>
<CHAPTER>
<LONG-NAME>Chapter 2.2</LONG-NAME>
</CHAPTER>
</CHAPTER>
</REPORT-BODY>
1 つのチャプター内に任意の数のチャプターを含めることができます。以下のように出力pdfを取得するためのxsl-foの書き方:
1. Chapter 1
1.1 chapter 1.1
1.1.1 Chapter 1.1.1
1.2 Chapter 1.2
2.Chapter 2
2.1 Chapter 2.1
2.2 Chapter 2.2
私は使ってみました:
<xsl:template
match="CHAPTER/LONG-NAME">
<fo:block
color="#374B80"
font-size="12px"
font-family="Helvetica"
font-weight="bold"
padding-top="3px"
padding-bottom="3px">
<xsl:if test="ancestor::REPORT-BODY">
<xsl:variable name="chapNum">
<xsl:number from="CHAPTER" count="LONG-NAME" format="1 " level="any"/>
</xsl:variable>
<xsl:value-of select="$chapNum"/>
</xsl:if>
<xsl:if test="ancestor::CHAPTER">
<xsl:variable name="chapNumber">
<xsl:text>.</xsl:text>
<xsl:number from="CHAPTER/CHAPTER" count="LONG-NAME" format="1. " level="any"/>
</xsl:variable>
<xsl:value-of select="$chapNumber"/>
</xsl:if>
<xsl:apply-templates/>
</fo:block>
</xsl:template>
しかし、必要な番号付けを達成できません。