如何使用自定义XSLT在浏览器中显示Atom/RSS提要?

如何使用自定义XSLT在浏览器中显示Atom/RSS提要?,xslt,rss,feed,atom-feed,Xslt,Rss,Feed,Atom Feed,大约在2006年,我编写了一个很好的XSLT,将我的RSS提要转换为自定义HTML。这样,如果用户从浏览器中单击,它将显示为一个简单的页面,而不是一堆垃圾XML。如果在提要阅读器中使用相同的URL,那么它会得到正确的处理,并且一切都很顺利 现在,大多数浏览器(如Firefox、Safari、Opera)似乎都抓住了风格,不肯放手。Chrome只是简单地忽略了样式表转换 这么多年了,我是不是忘了一些细节?以前不是这么容易吗 <?xml version="1.0" encoding="utf-

大约在2006年,我编写了一个很好的XSLT,将我的RSS提要转换为自定义HTML。这样,如果用户从浏览器中单击,它将显示为一个简单的页面,而不是一堆垃圾XML。如果在提要阅读器中使用相同的URL,那么它会得到正确的处理,并且一切都很顺利

现在,大多数浏览器(如Firefox、Safari、Opera)似乎都抓住了风格,不肯放手。Chrome只是简单地忽略了样式表转换

这么多年了,我是不是忘了一些细节?以前不是这么容易吗

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="/atom2html.xslt"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <!-- ... -->
</feed>


有人知道是否有一种方法可以用非常具体的提要样式来覆盖这些浏览器吗?还有什么方法可以从Chrome中获得好处呢?

我不知道有什么方法可以愚弄IE&FF&Safari自动显示RSS/Atom提要,但在Chrome中,XSLT是通过
xml样式表
处理指令正确应用的;从位于的Randonneur组池中,如果提要响应的内容类型设置为XML而不是Atom,Chrome似乎仅应用XSLT处理指令

这将在Chrome中显示XSLT:

Content-Type: application/xml
这不会显示任何样式(从技术上讲,这是更正确的类型):


现在,大多数浏览器的默认行为是将自己的XSLT应用于遇到的任何Atom/RSS提要,这非常烦人。提要是通过atom的application/atom+xmlmie类型和rss的application/rss+xml类型标识的


过去,您可以通过以注释的形式用crud填充提要的前512字节来避免这种情况。这将摆脱浏览器的提要嗅探,并允许您应用自己的XSL样式表。这对我来说已经有效多年了,但在IE8中,这种行为已经消失,512字节的注释不再有效。我现在已经切换到服务器端处理,但我仍然对浏览器做出的这一决定感到遗憾。

不,Feedburner似乎也是这样做的。它是否只适用于RSS?不是Atom?请看下面关于Chrome不工作的原因。有人知道如何让其他浏览器运行吗?看起来是正确的。以下是2015年为Jekyll主题创建的工作示例,如果您需要参考:。我看到的唯一区别是在第二行的最后一个
之前有一个空格。我在示例Flickr页面上没有看到任何Atom提要链接。你确定这是正确的URL吗?Ops,a在链接中粘贴了错误的URL。这是包含提要副本的页面:这是应用的xsl:+1您的示例为我提供了一个很好的起点,可以确定我的示例为什么不起作用。谢谢请注意,这个示例是“格式良好”的,即feed标记位于前512个字节内,Firefox不会应用XSLT,而是使用其feed视图。这在Firefox中仍然有效,事实上是为了绕过默认的feed样式。这不仅是一个非常丑陋的“解决方法”,还破坏了与其他浏览器的兼容性。加上这些积垢,我就可以在chrome中找到饲料了。
Content-Type: application/atom+xml