Мы можем вставить HTML-теги в переменную XSL

Я просто хочу подтвердить, можем ли мы вставить html-теги в переменную xsl? пример

<xsl:variable name="htmlContent">
<html>
<body>
hiiii
</body>
</html>
</xsl:variable>

если я использую

<xsl:value-of select="$htmlContent"/>

Я должен получить

<html>
<body>
hiiii
</body>
</html>

Является ли это возможным? я пытался

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

Даже если я не получаю желаемый результат

1 ответ

Не использовать value-of, который получает текстовое значение выбранного узла. Вместо этого используйте copy-of, который копирует все дерево (узлы и все) в вывод:

<xsl:copy-of select="$htmlContent"/>

Вот полный пример:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:variable name="htmlContent">
    <html><body>hiiii</body></html>
</xsl:variable>

<xsl:template match="/">
    <xsl:element name="htmlText">
        <xsl:copy-of select="$htmlContent"/>
    </xsl:element>
</xsl:template>

</xsl:stylesheet>

Это всегда будет производить xml:

<htmlText>
    <html>
       <body>hiiii</body>
    </html>
</htmlText>
Другие вопросы по тегам