<?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 中收到解析错误。 如何解决这个问题?
W3C HTML 5 参考建议使用 doctype-system="about:legacy-compat"
:
为了与 HTML 的传统生产者(即软件(兼容 输出 HTML 文档 — 替代 DOCTYPE 可用于 由无法输出上面给出的 DOCTYPE 的系统使用。这 限制发生在期望 DOCTYPE 包含以下任一内容的软件中 公共或系统标识符,并且无法省略它们。这 此 DOCTYPE 的规范形式如下:
<!DOCTYPE html SYSTEM "about:legacy-compat">
您可以使用以下任何 XSLT 处理器实现此目的:
<xsl:output method="html" doctype-system="about:legacy-compat" />
它将生成:
<!DOCTYPE HTML SYSTEM "about:legacy-compat">
不能直接在 xslt 中嵌入<!DOCTYPE HTML>
声明。使用以下内容:
<xsl:text disable-output-escaping='yes'><!DOCTYPE html></xsl:text>
相反。有关类似问题,请参阅使用 XSLT 设置 HTML5 文档类型。