xsltproc转换为html会删除空元素的关闭标记

时间:2013-07-13 21:17:27

标签: xml xslt ubuntu

我正在尝试将一个非常简单的xml转换为html。实际上xml文件是空白的。

 <?xml-stylesheet type="text/xsl" href="test.xsl" ?>
 <myElement>
 </myElement>

这是我的XSL

 <xsl:stylesheet version='1.0' xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="html" version="4.0" />

 <xsl:template match="/">
    <html>
    <head>
       <title>How you doing?</title>
    </head>
    <body>
     <br />
     <br />

    </body>
    </html>
 </xsl:template>
 </xsl:stylesheet>

这是xsltproc的输出。请注意,br标签不再关闭。任何人都有任何关于为什么会这样的想法?

 matt@ubuntu:~/src/tmp$ xsltproc test.xsl test.xml 
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"                "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>How you doing?</title>
 </head>
 <body>
 <br><br>
 </body>
 </html>

1 个答案:

答案 0 :(得分:3)

我明白了。

 <xsl:output method="html" version="4.0" />

非闭合标签实际上是有效的html,但不是xhtml。所以这是按预期工作的。