2
<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
    <!DOCTYPE HTML>
    <html>
    <head>

    </head>
    <body>

    </body>
    </html>
</xsl:template>

</xsl:stylesheet>

它在 DOCTYPE 中出现解析错误。如何解决这个问题?

4

2 回答 2

5

W3C HTML 5 参考建议使用doctype-system="about:legacy-compat"

为了与 HTML 的传统生产者(即输出 HTML 文档的软件)兼容,一种替代 DOCTYPE 可供无法输出上述 DOCTYPE 的系统使用。此限制发生在希望 DOCTYPE 包含 PUBLIC 或 SYSTEM 标识符并且无法省略它们的软件中。此 DOCTYPE 的规范形式如下:

<!DOCTYPE html SYSTEM "about:legacy-compat">

您可以使用任何具有以下功能的 XSLT 处理器来实现此目的:

<xsl:output method="html" doctype-system="about:legacy-compat" />

它将生成:

<!DOCTYPE HTML SYSTEM "about:legacy-compat">
于 2012-08-26T16:41:55.463 回答
2

您不能将<!DOCTYPE HTML>声明直接嵌入到 xslt 中。使用以下内容:

<xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html></xsl:text>

反而。有关类似问题,请参阅使用 XSLT 设置 HTML5 文档类型。

于 2012-08-26T06:19:34.527 回答