У меня есть список номеров в моем вводе XML, и я могу выровнять тело списка (текстовое содержимое) по правому краю, но числа остаются выровненными по левому краю. Как я могу выровнять весь список, включая числа / маркеры, по правому краю, по умолчанию идет слева. Любая помощь или указатели приветствуются, спасибо.
Токовый выход:
Number list below
1. L List 1
2. R list 2
Мой ожидаемый результат:
Number list below
1. L List 1
2. R list 2
Я упростил XML-данные, как показано ниже:
<p>Number list below</p>
<ol>
<li style="text-align: right;">L list 1</li>
<li style="text-align: right;">R list 2</li>
</ol>
Мой код xslt выглядит так:
<xsl:template match="LI|li">
<fo:list-block>
<xsl:attribute name="text-align">
<!--xsl:value-of select="end"/-->
<xsl:text disable-output-escaping="yes">right</xsl:text>
</xsl:attribute>
<fo:list-item>
<fo:list-item-label end-indent="label-end()">
<fo:block>
<xsl:variable name="value-fetcher">
<xsl:choose>
<xsl:when test="../@start">
<xsl:number value="count(preceding-sibling::li) + count(preceding-sibling::LI)+ ../@start"/>
</xsl:when>
<xsl:otherwise>
<xsl:number value="count(preceding-sibling::li) + count(preceding-sibling::LI) + 1"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:number value="$value-fetcher" format="1."/>
</fo:block>
</fo:list-item-label>
<fo:list-item-body start-indent="body-start()">
<fo:block>
<xsl:apply-templates select="text()"/>
</fo:block>
</fo:list-item-body>
</fo:list-item>
</fo:list-block>
</xsl:template>