doctype中的错误

时间:2012-08-26 06:15:55

标签: php xml xslt

<?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中出现解析错误。如何解决这个问题?

2 个答案:

答案 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'>&lt;!DOCTYPE html></xsl:text>

代替。有关类似问题,请参阅Set HTML5 doctype with XSLT