XSLT представляют в виде строки с объектами HTML - Как я могу заставить это представлять как HTML?

Я абсолютно плохо знаком с использованием 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  &quot;Hello World&quot; and sometimes whitespaces.&nbsp;</div>

Что я могу сделать для представления этой строки как HTML, так, чтобы <div></div> результаты в новых строках, &quot; дает мне ", и &nbsp; дает мне пространство?

Я мог уточнить вещи, которые я уже попробовал, которые не работали, но я не знаю, релевантно ли это.

11
задан Kache 18 May 2010 в 11:01
поделиться

3 ответа

Думаю, вы хотите установить следующий атрибут так:

<xsl:value-of select="@Description" disable-output-escaping="yes"/>
17
ответ дан 3 December 2019 в 05:57
поделиться

Причина, по которой 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 ) и применить стиль блока.

0
ответ дан 3 December 2019 в 05:57
поделиться

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

В XSLT 2.0 есть функция, называемая символьные карты , которая обеспечивает эту функциональность, если это действительно необходимо. Лучшая практика XSLT - стараться не использовать DOE без крайней необходимости.

Кроме того, DOE не является обязательной функцией XSLT, и некоторые процессоры XSLT могут не реализовывать ее. Это означает, что приложение XSLT, использующее DOE, обычно не переносимо между разными процессорами XSLT.

3
ответ дан 3 December 2019 в 05:57
поделиться
Другие вопросы по тегам:

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