XSL:让原始HTML通过

Bef*_*rem 7 html xslt

我正在进行XSL转换.我正在转换的XML有一个包含html的节点.

<xml>
    <text>
        <p><b>Hello</b><em>There</em></p>
    </text>
</xml>
Run Code Online (Sandbox Code Playgroud)

应用转换:

<xsl:template match="text">
    <div class="{name()} input">
        <xsl:value-of select="."/>
    </div>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

我得到输出:

<div class="text input">
    Hello There
</div>
Run Code Online (Sandbox Code Playgroud)

但我希望Html保持原样如下:

<div class="text input">
    <p><b>Hello</b><em>There</em></p>
</div>
Run Code Online (Sandbox Code Playgroud)

代替.使用node()函数可以得到相同的结果.

有没有一种方法可以通过转换获得未经修改的HTML?

Gab*_*oli 11

看看xsl:copy-of

它应该做你需要的......

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

以上将选择整个当前节点,因此在您的情况下<text>将包括它自己.

使用以下选项可以选择当前的所有内容.

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