<?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中出现解析错误。如何解决这个问题?
答案 0 :(得分:5)
W3C HTML 5 Reference建议使用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">
答案 1 :(得分:2)
您无法直接在xslt中嵌入<!DOCTYPE HTML>
声明。使用以下内容:
<xsl:text disable-output-escaping='yes'><!DOCTYPE html></xsl:text>
代替。有关类似问题,请参阅Set HTML5 doctype with XSLT。