Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

XSLT wont allow me to use self-closing img and br tags

Tags:

html

xml

xhtml

xslt

I have some XSLT that gets rendered in the Sitecore 6 CMS, but I don't think that this issue is specific to the product.

If I have a self-closing img or br tag, like so:

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

The resulting output would be:

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

The output method of the XSLT file is HTML. Is it supposed to be XML? I'm guessing that self-closing tags are not valid HTML, but is setting it to XML going to cause problems in my output?

like image 468
John B Avatar asked Oct 13 '09 14:10

John B


2 Answers

That is just fine. You choose HTML, and <br> tags are allowed in HTML. Choose XML and then you will have what you want.

And yes, you should use XML method if you want self-closing tags. I'm guessing you want XHTML output, and XHTML is a XML document.

like image 121
prostynick Avatar answered Sep 17 '22 19:09

prostynick


When you do get self closing tags working, you may run accross some odd bugs. Here are some examples:

A couple years ago in IE, I my whole rendered page was blank, but view source showed the full HTML. The problem was a self closing title tag (<title/>).

Also, self closing script tags (<script src="code.js"/>) can cause the JavaScript files not to load, so inside of your XSLT, you may need to have some text inside the script tag to keep it from self closing and get it to work.

<script src="code.js>//</script>
like image 23
Kevin Hakanson Avatar answered Sep 20 '22 19:09

Kevin Hakanson