XSLT不允许我使用自动关闭的img和br标签

时间:2009-10-13 14:55:19

标签: html xml xslt xhtml

我有一些在Sitecore 6 CMS中呈现的XSLT,但我不认为此问题是特定于该产品的。

如果我有一个自动关闭的img或br标签,就像这样:

<br />
<img src="your.example.com" />

结果输出为:

<br>
<img src="your.example.com">

XSLT文件的输出方法是HTML。它应该是XML吗?我猜测自关闭标签不是有效的HTML,但是将它设置为XML会导致输出问题吗?

3 个答案:

答案 0 :(得分:12)

这很好。您选择HTML,HTML中允许使用<br>标记。选择XML,然后你就可以得到你想要的东西。

是的,如果你想要自动关闭标签,你应该使用XML方法。我猜你想要XHTML输出,而XHTML是一个XML文档。

答案 1 :(得分:6)

当你自我关闭标签工作时,你可能会遇到一些奇怪的错误。以下是一些例子:

几年前在IE中,我的整个渲染页面都是空白的,但是查看源显示了完整的HTML。问题是一个自我关闭的标题标签(<title/>)。

此外,自动关闭脚本标记(<script src="code.js"/>)可能导致JavaScript文件无法加载,因此在XSLT内部,您可能需要在脚本标记内部放置一些文本以防止它自行关闭并获取它起作用。

<script src="code.js>//</script>

答案 2 :(得分:5)

在样式表的顶部,您可以指定使用XML作为输出格式,还可以设置特定的DOCTYPE,例如:

<xsl:output method="xml" 
    media-type="text/html" 
    doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
    doctype-system="DTD/xhtml1-strict.dtd"
    cdata-section-elements="script style"
    indent="yes"
    encoding="UTF-8"/>