XSLT 无法使用 xs:output 添加 DOCTYPE

发布于 2024-11-07 10:45:39 字数 1007 浏览 1 评论 0原文

我正在使用 XSLT 创建 HTML 输出页面。我需要将文档类型添加到输出页面。 我用谷歌搜索,这似乎能够让它工作:

<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 不包含文档类型...。示例的其余部分......结果很好。

我做错了什么,为什么没有添加文档类型?

谢谢!

编辑:问题已解决,我正在使用 eXist,似乎 xsl:output 指令不起作用,解决方案: 邮件列表

I'm using XSLT to create a HTML output page. I need to add a doctype to the output page.
I googled and this seems to be able to get it working:

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

So I added it to a test transformation file, 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>

But the output HTML does not contain a doctype... . The rest of the example ... comes out fine.

What am I doing wrong, why isn't the doctype added?

Thanks!

EDIT: problem solved, I'm using eXist and it seems the xsl:output instruction will not work, the solution: mailing list

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

做个少女永远怀春 2024-11-14 10:45:39

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

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

(b)您的 XSLT 处理器没有执行结果树的序列化,其他的。如果序列化是由 XSLT 处理器以外的其他程序完成的(例如,如果您将输出发送到 DOM,然后使用 DOM 序列化程序),则 XSLT 序列化属性将被忽略。

I can think of two possible answers

(a) your XSLT processor is not conformant with the spec, or

(b) your XSLT processor is not doing the serialization of the result tree, something else is. If the serialization is done by something other than the XSLT processor (e.g. if you send output to a DOM and then use the DOM serializer) then the XSLT serialization properties will be ignored.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文