我正在努力将XML转换为HTML。因为Meta元素在Html的输出上没有关闭。
XML输入:
<topic>
<title>Sample</title>
</topic>
我正在使用的XSL:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8" indent="no"/>
<xsl:template match="topic" mode="chapterHead">
<head>
<xsl:call-template name="generateCharset"/>
</head>
</xsl:template>
<xsl:template name="generateCharset">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</xsl:template>
</xsl:stylesheet>
我得到的HTML输出:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
需要关闭或自行关闭Meta元素。
它已关闭。HTML元素是自结束的,不需要结束斜杠,而且从未指定或要求它有结束斜杠。事实上,从来没有HTML元素有这样的要求。
由于XHTML的遗留原因,允许在其中放置一个结束斜杠,但斜杠没有任何意义,什么也不做,浏览器会忽略它
在大多数情况下,您根本不应该将meta
元素放在XSLT生成的HTML结果中,相反,如果您想输出HTML,您应该在XSLT中使用<xsl:output method="html"/>
,然后序列化的XSLT处理器将负责生成和插入meta
元素。