首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用XSLT设置HTML5文档类型

使用XSLT设置HTML5文档类型
EN

Stack Overflow用户
提问于 2010-08-02 19:08:57
回答 9查看 83.8K关注 0票数 140

如何通过XSLT将文件的文档类型干净地设置为HTML5 <!DOCTYPE html> (在本例中使用collective.xdv)

下面是我在Google foo上找到的最好的信息:

代码语言:javascript
复制
<xsl:output
    method="html"
    doctype-public="XSLT-compat"
    omit-xml-declaration="yes"
    encoding="UTF-8"
    indent="yes" />

产生:

代码语言:javascript
复制
<!DOCTYPE html PUBLIC "XSLT-compat" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2010-08-02 20:05:29

我认为这目前只能通过将doctype写出为text来支持:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" encoding="utf-8" indent="yes" />

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

</xsl:stylesheet>

这将产生以下输出:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
</html>
票数 153
EN

Stack Overflow用户

发布于 2010-08-04 19:09:04

要使用简单的HTML doctype <!DOCTYPE html>,必须使用disable-output-escaping特性:<xsl:text disable-output-escaping="yes">&lt;!DOCTYPE html&gt;</xsl:text>。但是,disable-output-escaping是XSLT中的一个可选特性,因此您的XSLT引擎或序列化管道可能不支持它。

出于这个原因,HTML5提供了另一种文档类型,以便与不支持HTML5的XSLT版本(即所有当前存在的XSLT版本)和其他有相同问题的系统兼容。另一个文档类型是<!DOCTYPE html SYSTEM "about:legacy-compat">。要输出此文档类型,请在xsl:output元素上使用属性doctype-system="about:legacy-compat",而不使用任何doctype-public属性。

代码语言:javascript
复制
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output method="html" doctype-system="about:legacy-compat"/>
   ...
   <html>
   </html>
</xsl:stylesheet>
票数 66
EN

Stack Overflow用户

发布于 2012-05-06 15:24:11

代码语言:javascript
复制
<xsl:output
     method="html"
     doctype-system="about:legacy-compat"
     encoding="UTF-8"
     indent="yes" />

下面的输出

代码语言:javascript
复制
<!DOCTYPE html SYSTEM "about:legacy-compat">

这被修改为我对http://ukchill.com/technology/generating-html5-using-xslt/的修复

票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3387127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档