首页 > 解决方案 > 使用 XSLT 将特定 HTML 标记与另一个 HTML 标记包围起来

问题描述

在 XSLT 中是否有任何方法可以将 HTML 文件转换为用另一个 HTML 标记(在这种情况下为“中心”)包围现有的 HTML 标记(在这种情况下为“中心”),而无需在 XSLT 中再次重写整个 HTML 结构?

现有的 HTML 代码:

<!DOCTYPE html>
<html>
    <body>
         <img id="image" width: 747px; height: 1056px" src="image.jpg"/>
         <p>My first paragraph.</p>
    </body>
</html>

使用 XSLT 转换后,预期输出:

<!DOCTYPE html>
<html>
    <body>
         <center>
              <img id="image" width: 747px; height: 1056px" src="image.jpg"/>  
         </center>
     <p>My first paragraph.</p>
    </body>
</html>

我想通过 XSLT 身份转换来做到这一点,但我不知道如何只用另一个 HTML 标记包围特定的 HTML 标记(在本例中为“img”)

<xsl:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>

注意:通过 XSLT,我不想再次重写预期的 HTML 输出的整个结构(如果可能的话)。我只想在<center>HTML 标签周围添加<img>HTML 标签。

标签: htmlxmlxsltxpathxslt-2.0

解决方案


使用xsl:copy-of说明

<xsl:template match="img">
    <center>
        <xsl:copy-of select="."/>
    </center>
</xsl:template>

推荐阅读