我猜您没有正确的XSLT输出方法来作为HTML
text/html
<xsl:output method="html"/>
如果您想创建HTML来解析为
通过浏览器。否则,XSLT处理器可能会序列化空的
span
元素为
<span/>
然后HTML5解析算法确实改变了
<span class="A"/><span class="B">foo</span>
分成两个嵌套的
元素,可在“live DOM viewer”中查看
your example
.
如果你有
xsl:output method="html"
但是如果没有得到正确的解析,那么要么不让XSLT处理器序列化XSLT转换结果,要么就涉及到名称空间。
根据您的编辑,XSLT不会生成HTML4或5,而是生成XHTML(作为名称空间声明)
<html xmlns="http://www.w3.org/1999/xhtml">
表示)。你有必要这么做吗?让XSLT1产生
文本/html
<xsl:output method="xhtml"/>
如果需要名称空间,但希望将结果解析为
文本/html
通过浏览器。
<xsl:output method="xml"/>
但是为了确保浏览器能以
application/xhtml+xml
,而不是
. 但是许多脚本库使用旧的
document.write
其他的东西在解析为XML的XHTML中不起作用,所以这种方法有其缺陷,这取决于结果文档使用的Javascript代码等其他资源。