我们可以在XSL变量中插入HTML标记吗?

Iro*_*man 10 html xml xslt xsl-variable

我只想确认是否可以在xsl变量中插入html标签?例

<xsl:variable name="htmlContent">
<html>
<body>
hiiii
</body>
</html>
</xsl:variable>
Run Code Online (Sandbox Code Playgroud)

如果我使用

<xsl:value-of select="$htmlContent"/>
Run Code Online (Sandbox Code Playgroud)

我得到了

<html>
<body>
hiiii
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

可能吗?我试过了

<xsl:value-of disable-output-escaping="yes" select="$htmlContent"/>
Run Code Online (Sandbox Code Playgroud)

虽然我没有得到所需的输出

Fra*_*ila 15

不要使用value-of,它获取所选节点的文本值.而是使用copy-of,将整个树(节点和所有树)复制到输出中:

<xsl:copy-of select="$htmlContent"/>
Run Code Online (Sandbox Code Playgroud)

这是一个完整的例子:

<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>
Run Code Online (Sandbox Code Playgroud)

这将始终生成xml:

<htmlText>
    <html>
       <body>hiiii</body>
    </html>
</htmlText>
Run Code Online (Sandbox Code Playgroud)