如何使xsl计数输出aa,bb,cc,而不是aa,ab,ac,?

时间:2016-05-18 12:30:34

标签: xslt

当使用xsl数字计数格式时,我遇到了一个问题,它完全适用于z之后,我需要序列为aa,bb,cc ... 取而代之的是aa,ab,ac ..我试过格式得到了相同的结果。

<xsl:variable name="name1">
  <xsl:number count="*" format="a"/> 
</xsl:variable>

<xsl:variable name="name">
  <xsl:number count="*" format="aa"/> 
</xsl:variable>

2 个答案:

答案 0 :(得分:1)

我不知道您可以在xsl:number中使用格式令牌来获取该类型的输出。

可能有一个较短的方式,但这是我想出的一些东西:

<xsl:variable name="i">
    <xsl:number count="*" /> 
</xsl:variable>

<xsl:for-each select="0 to ($i - 1) idiv 26">
    <xsl:number value="($i - 1) mod 26 + 1" format="a"/> 
</xsl:for-each>

根据您的具体情况,您可以将其简化为:

<xsl:variable name="i" select="position() - 1"/>

<xsl:for-each select="0 to $i idiv 26">
    <xsl:number value="$i mod 26 + 1" format="a"/> 
</xsl:for-each>

答案 1 :(得分:0)

另一种方法是设置两次:

<fo:block letter-spacing="0.2pt">
    <xsl:number level="single" count="list-item" format="a"/>
    <xsl:number level="single" count="list-item" format="a"/>
</fo:block>

这很简单,但似乎有效。