Я использую XSL FO для создания PDF файла, содержащего таблицу с информацией. Один из этих столбцов - столбец "Описание". Пример строки, которую я заполняю одним из следующих полей описания, выглядит следующим образом:
This is an example Description.<br/>List item 1<br/>List item 2<br/>List item 3<br/>List item 4
Внутри ячейки таблицы, которая соответствует этому описанию, я хотел бы, чтобы вывод отображался как таковой:
This is an example Description.
List item 1
List item 2
List item 3
List item 4
Я узнал из поиска в другом месте, что вы можете сделать разрывы строк в XSL FO с помощью <fo:block></fo:block>
внутри другого элемента <fo:block>
. Поэтому, даже до того, как я проанализирую XML с моей таблицей стилей XSL, я заменяю все вхождения <br/>
на <fo:block/>
, так что буквальное значение строки теперь выглядит следующим образом:
This is an example Description.<fo:block/>List item 1<fo:block/>List item 2<fo:block/>List item 3<fo:block/>List item 4
Проблема возникает, когда строка описания, которую я использую, получается с помощью <xsl:value-of>
, например, следующим образом:
<fo:block>
<xsl:value-of select="descriptionStr"/>
</fo:block>
В этом случае значение, которое выводится в мой документ PDF, является литеральным значением, поэтому оно выглядит точно так же, как в предыдущем примере со всеми литералами <fo:block/>
. Я пробовал вручную жестко кодировать <fo:block/>
в середине другой строки, и он отображается правильно. Например. если я напишу внутри моей таблицы стилей:
<fo:block>Te<fo:block/>st</fo:block>
Он будет отображаться правильно:
Te
st
Но это, похоже, не происходит, когда <fo:block/>
находится внутри значения инструкции <xsl:value-of select=""/>
. Я пробовал искать это на SO, а также в Google и т.д. Безрезультатно. Любые советы или помощь будут высоко оценены. Спасибо!