Хранение тегов html в переменной xsl - PullRequest
1 голос
/ 28 марта 2012

Извините, если это глупый вопрос, но возможно ли сохранить и извлечь фрагмент HTML в переменной xsl 1.0? EG:

<xsl:variable name="something"><p>Hi there</p><p>How are you today?</p></xsl:variable>

<xsl:value-of disable-output-escaping="yes" select="$something"/>

Это просто когда я пытаюсь, кажется, лишить HTML-теги. Спасибо.

Ответы [ 2 ]

9 голосов
/ 28 марта 2012

Вам нужно использовать <xsl:copy-of select="$something"/> вместо xsl:value-of.

3 голосов
/ 21 апреля 2015

Я добавлю некоторые объяснения того, что происходит:)

Причина, по которой вы не получаете html-теги, заключается в том, что переменная $thing содержит фрагмент dom, а не строку: элемент value-of извлекает содержимое узла (-ов) так же, как и строку () Функция делает, поэтому не сериализует узлы.

Вместо этого вы получите строковое представление html-строки, которую вы имеете, и затем вы можете распечатать ее с помощью value-of и disable-output-escaping:

<xsl:variable name="something"><![CDATA[<p>Hi there</p><p>How are you today?</p>]]></xsl:variable>

(см. https://msdn.microsoft.com/en-us/library/ms256181(v=vs.110).aspx "Результаты конвертируются в строку, как при вызове функции string ()")

...