xsl html закрывает тег внутри if - PullRequest
0 голосов
/ 21 декабря 2018

Я хотел бы иметь возможность закрывать HTML-теги на основании некоторых условий:

 <xsl:for-each test="">
 <table>
  <tbody>
 <tr><td></td></tr>
 <xsl:if test="position() mod 35 = 0 ">

        <xsl:text disable-output-escaping="yes"><![CDATA[</tbody>]]></xsl:text>
        <xsl:text disable-output-escaping="yes"><![CDATA[</table>]]></xsl:text>
 </xsl:if>
</xsl:for-each>

В IE и Edge это работает нормально, но не в Firefox:

enter image description here

Ответы [ 2 ]

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

XSLT работает на деревьях узлов, а не на тегах.Вы не можете записать половину узла в дерево результатов.Написание тегов напрямую с использованием disable-output-escaping работает только в том случае, если ваш XSLT-преобразователь тесно связан с сериализатором, что серьезно ограничивает ваши параметры.

Похоже, вы пытаетесь разбить последовательность элементов на группы35. Группировать в XSLT 1.0 сложно, но есть обширная литература по этому вопросу: просто поиск по «Группировке XSLT».Для группировки с фиксированным размером, см., Например, Преобразование XML для группировки полей в столбцы с XSLT .

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

Вы столкнулись с серьезной проблемой.
См. <xsl:text disable-output-escaping="yes"> не работает в Mozilla Bug Tracker.

Это означает, что Mozilla Firefox не поддерживает disable-output-escaping в течение 18года.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...