Я абсолютно плохо знаком с использованием XSL, поэтому если существует информация, которую я забыл включать, просто сообщать мне.
У меня есть строка в моем файле XSLT, который я могу отобразить как это:
<xsl:value-of select="@Description/>
и это обнаруживается, представленный в браузере как:
<div>I can't do anything about the html entities existing in the text.</div> <div>This includes quotes, like "Hello World" and sometimes whitespaces. </div>
Что я могу сделать для представления этой строки как HTML, так, чтобы <div></div>
результаты в новых строках, "
дает мне "
, и
дает мне пространство?
Я мог уточнить вещи, которые я уже попробовал, которые не работали, но я не знаю, релевантно ли это.
Думаю, вы хотите установить следующий атрибут так:
<xsl:value-of select="@Description" disable-output-escaping="yes"/>
Причина, по которой div в HTML получают конечную строку совершенно другой и связан с блочной моделью CSS. Большинство браузеров применяют стиль:
div {display:block;}
Вместо стандартного отображения: inline ;. Однако они делают это только с div в пространстве имен XHTML. Чтобы облегчить это, вам необходимо вывести блоки div в пространство имен XHTML. Свяжите пространство имен XHTML с префиксом xhtml в верхней части документа следующим образом:
<xsl:stylesheet xmnls:xhtml="http://www.w3.org/1999/xhtml" ... >
А затем выведите div как
, который распознает большинство браузеров div должен находиться в пространстве имен XHTML ( http://www.w3.org/1999/xhtml ) и применить стиль блока.
Зачем нужно выводить сущности ? Для браузера
то же самое, что
- в обоих случаях будет отображаться неразрывный пробел.
В XSLT 2.0 есть функция, называемая символьные карты , которая обеспечивает эту функциональность, если это действительно необходимо. Лучшая практика XSLT - стараться не использовать DOE без крайней необходимости.
Кроме того, DOE не является обязательной функцией XSLT, и некоторые процессоры XSLT могут не реализовывать ее. Это означает, что приложение XSLT, использующее DOE, обычно не переносимо между разными процессорами XSLT.