XSLT FOP PDF table 行编号

XSLT FOP PDF table row numbering

我正在尝试为只有特定行输出的 table 获取自动行编号。 示例测试 xml

<Data>
<DataRow><Text>red</Text></DataRow>
<DataRow><Text></Text></DataRow>
<DataRow><Text>blue</Text></DataRow>
<DataRow><Text></Text></DataRow>
<DataRow><Text>green</Text></DataRow>

FOP XSLT 摘录

<fo:table width="100%">
    <fo:table-column column-width="8mm"/>
    <fo:table-column column-width="172mm"/>
    <fo:table-body>
        <xsl:for-each select="/Data/DataRow">
            <xsl:if test="string-length(Text) > 0">
                <fo:table-row>
                    <fo:table-cell>
                        <fo:block text-align="left">
                            <xsl:value-of select="position()" /><xsl:text>.</xsl:text>                          
                        </fo:block>     
                    </fo:table-cell>
                    <fo:table-cell>
                        <fo:block text-align="left">
                            <xsl:value-of select="Text" />
                        </fo:block>                     
                    </fo:table-cell>
                </fo:table-row>
            </xsl:if>
        </xsl:for-each>
    </fo:table-body>
</fo:table>     

想要的结果是

1.  red
2.  blue
3.  green

但我得到了

1.  red
3.  blue
5.  green

在 for-each 的表达式中使用谓词 Data/DataRow[normalize-space(Text)] 而不是嵌套的 if。