<head> 元素 xsl:template 被忽略,XML,XSL,XHTML

<head> element inside xsl:template ignored, XML, XSL, XHTML

我有一个奇怪的问题,head 元素在 <xsl:template> 元素中被忽略:

<xsl:output method="xml" indent="yes" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1- 
strict.dtd" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"/>
<xsl:template match="/">
    <html xmlns="http://www.w3.org/1999/XSL/xhtml">
    <head>
        <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
        <link rel="stylesheet" href="./design.css" type="text/css"/>
        <title>XML Data</title>
    </head>
    <body>
        <header id="header">Some text</header>
    </body>
    </html>
</xsl:template>

Chrome/Mozilla 结果:title 元素写在 body 元素内,而不是标签标题。 .css 也会被忽略。

可能是什么问题?

http://www.w3.org/1999/XSL/xhtml 不是 XHTML 命名空间,如果你真的想创建 XHTML 然后使用命名空间 http://www.w3.org/1999/xhtml.

当然不清楚您如何 运行 XSLT 以及浏览器是否将 XSLT 结果视为 text/html 或 application/xml 或任何其他 XML 媒体类型,但修复名称空间将是识别 XHTML 元素并将其用于您期望的语义的第一步。