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

Joh*_*ski 8 html xml xslt xhtml

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

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

<br />
<img src="your.example.com" />
Run Code Online (Sandbox Code Playgroud)

结果输出将是:

<br>
<img src="your.example.com">
Run Code Online (Sandbox Code Playgroud)

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

pro*_*ick 12

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

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


Kev*_*son 6

当你自我关闭标签工作时,你可能会遇到一些奇怪的错误.这里有些例子:

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

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

<script src="code.js>//</script>
Run Code Online (Sandbox Code Playgroud)


Dir*_*mar 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"/>
Run Code Online (Sandbox Code Playgroud)