我有xml的形式:
第1章
第1.1章
第1.1.1节
第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>
一章内可以有任意数量的章节。 如何编写xsl-fo以获取out pdf如下:
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>
但我无法达到所需的编号。
答案 0 :(得分:2)
尝试使用xsl:number
,如下所示:
<xsl:number format="1. " count="CHAPTER" level="multiple"/>
您应该可以使用以下模板替换模板:
<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:number format="1. " count="CHAPTER" level="multiple"/>
<xsl:value-of select="."/>
</fo:block>
</xsl:template>