html - 使用 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 标签。
解决方案
使用xsl:copy-of
说明
<xsl:template match="img">
<center>
<xsl:copy-of select="."/>
</center>
</xsl:template>