XSL: Как использовать теги HTML внутри таблицы стилей? - PullRequest
0 голосов
/ 27 декабря 2018

Я получил этот код в моей таблице стилей XSL:

<xsl:for-each select="report:column-names/report:column">
    <fo:table-cell display-align="center" font-size="9pt">
        <fo:block font-family="{$font.family}" font-weight="bold">
            <xsl:value-of select="." disable-output-escaping="yes" /> <--problematic value
        </fo:block>
    </fo:table-cell>
</xsl:for-each>

В упомянутом выше проблемном значении я получил значения, которые хочу обернуть тегом bdi html.

Я пытался просто поставить bdi, и я не видел свое значение, например:

<bdi><xsl:value-of select="." disable-output-escaping="yes" /></bdi>

Как применить этот тег к моим значениям?

1 Ответ

0 голосов
/ 27 декабря 2018

Вы не можете смешивать HTML и XSL-FO.XSL-FO - это словарь XML, определенный для форматирования.Первоначальная цель XSLT состояла в том, чтобы преобразовать произвольные словари XML (в конце концов, «X» в «XML» происходит от «Extensible») в словарь стандартного форматирования.Это то, что вы делали с XSLT в своем вопросе.

Описание обработки Unicode BIDI в XSL 1.1: https://www.w3.org/TR/xsl11/#d0e4879. Применимый FO - fo:bidi-override (* 1007).* и применимыми свойствами являются direction (https://www.w3.org/TR/xsl11/#direction) и unicode-bidi (https://www.w3.org/TR/xsl11/#unicode-bidi).

). Вы до сих пор не показали содержимое элемента report:column, но похоже, чтоВы хотите:

<fo:bidi-override unicode-bidi="embed" direction="rtl">
  <xsl:value-of select="." disable-output-escaping="yes" />
</fo:bidi-override>

Не видя элемента report:column, embed и rtl являются лишь догадками.

(Использование disable-output-escaping редко является хорошей идеей, номы не можем видеть, насколько плоха идея в этом случае, не видя элемент report:column, который нуждается в этом.)

...