XSLT无法使用xs:output添加DOCTYPE

时间:2011-05-13 17:48:26

标签: html xslt stylesheet doctype exist-db

我正在使用XSLT创建HTML输出页面。我需要在输出页面添加一个doctype。 我用谷歌搜索,这似乎能够让它工作:

<xsl:output 
  doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
  doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
/>

所以我将它添加到测试转换文件transform.xsl:

<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:output 
  doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
  doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
/>

<xsl:template match="/">

<html>
<head>
    <title>test</title>
</head>
<body>
content!
</body>
</html> 

</xsl:template>
</xsl:stylesheet>

但输出HTML不包含doctype ....其余的例子......很好。

我做错了什么,为什么不添加doctype?

谢谢!

编辑:问题解决了,我正在使用eXist,似乎xsl:output指令无效,解决方案:mailing list

1 个答案:

答案 0 :(得分:1)

我可以想到两个可能的答案

(a)您的XSLT处理器不符合规范或

(b)您的XSLT处理器没有对结果树进行序列化,而另一些则是。如果序列化是由XSLT处理器以外的其他东西完成的(例如,如果将输出发送到DOM然后使用DOM序列化程序),那么将忽略XSLT序列化属性。