Despite supporting XSLT Safari 2.0 ignores XSLT when it comes to RSS/RDF (I would assume Atom as well) feeds. This means that, if you have an XSLT transformation on your site’s various feeds, Safari will ignore the XSLT and render it within its native RSS viewer. Needless to say I’m not happy about this.
I’ve also discovered that Mozilla’s XSLT parser ignores
disable-output-escaping, which, in their defense, is deprecated. In order to properly output XHTML/HTML that may be present in your
<![CDATA[ ... ]]> you need to do the following.
- Remove your
<![CDATA[ ... ]]>
- Make sure the markup inside of the
<![CDATA[ ... ]]>is valid.
<xsl:copy-of select="./*"/>to copy the content of the valid XHTML (it’s no longer HTML once it’s valid XML) into your output.
I’ve got an example (tested in Firefox, but not IE) of my RDF feed here. If you’re using Safari you’ll notice that it uses the new RSS reader instead of displaying my XSLT output. Thanks Apple. The odd part is that XSLT works just fine with non-RSS/RDF XML. The only thing I can guess is that Safari recognizes certain RSS tags and switches to whatever the RSS/RDF reader is.
I’ve been thinking about redoing the site so that it’s just XML/XSLT. This was the initial test to see how things would work in various browsers. Things look good, but in order to support Safari, I’ll have to use non-RSS/RDF XML.