XSL-FO - Пустые элементы блока

Сериализованный поток является просто последовательностью байтов (октеты). Таким образом, вопрос состоит в том, как преобразовать последовательность байтов к Строке, и назад снова. Далее это должно использовать ограниченный набор кодов символов, если это будет сохраненным в базе данных.

очевидное решение проблемы состоит в том, чтобы изменить поле на двоичный LOB. Если Вы захотите придерживаться characer LOB, то необходимо будет закодировать в некоторой схеме, такой как base64, шестнадцатеричное число или uu.

16
задан Jan 9 September 2018 в 22:48
поделиться

3 ответа

Просто добавьте элемент в конец вашего . Примерно так:

<xsl:template match="p">
        <fo:block>
                <xsl:apply-templates/>
                <fo:leader />
        </fo:block>
</xsl:template>

Выноска ничего не сделает для строк с содержимым и создаст пустую строку для строк без содержимого.

Протестировано с Apache FOP и XEP.

33
ответ дан 30 November 2019 в 15:32
поделиться

Альтернативно ,

<fo:block white-space-treatment="preserve"> </fo:block>
9
ответ дан 30 November 2019 в 15:32
поделиться

или

<xsl:template match="p">
    <fo:block>
            <xsl:apply-templates/>
            &#x00A0;
    </fo:block>

  является эквивалентом   в HTML (на самом деле   является XML сущностью, которая определена как A0, что является символом Юникода для неразрывного пространства).

11
ответ дан 30 November 2019 в 15:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: