为了账号安全,请及时绑定邮箱和手机立即绑定

使用XSLT设置HTML5文档类型

/ 猿问

使用XSLT设置HTML5文档类型

慕函数4003404 2019-11-11 10:45:30

我将如何通过XSLT 干净地将文件的文档类型设置为HTML5 <!DOCTYPE html>(在这种情况下,使用Collective.xdv)


以下是我的Google foo能够找到的最好的结果:


<xsl:output

    method="html"

    doctype-public="XSLT-compat"

    omit-xml-declaration="yes"

    encoding="UTF-8"

    indent="yes" />

产生:


<!DOCTYPE html PUBLIC "XSLT-compat" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


查看完整描述

3 回答

?
慕虎7371278

我认为目前仅通过将文档类型写为文本来支持此操作:


<?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>

这将产生以下输出:


<!DOCTYPE html>

<html>

</html>


查看完整回答
反对 回复 2019-11-11
?
慕桂英3389331

要使用简单的HTML文档类型<!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是<!DOCTYPE html SYSTEM "about:legacy-compat">。要输出此doctype,请使用元素doctype-system="about:legacy-compat"上的属性,而不使用属性。xsl:outputdoctype-public


<?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>


查看完整回答
反对 回复 2019-11-11
?
函数式编程

<xsl:output

     method="html"

     doctype-system="about:legacy-compat"

     encoding="UTF-8"

     indent="yes" />

这个输出


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

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


查看完整回答
反对 回复 2019-11-11

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信