代码之家  ›  专栏  ›  技术社区  ›  mckamey

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

  •  3
  • mckamey  · 技术社区  · 15 年前

    早在2006年,我就编写了一个很好的XSLT,将RSS提要转换为自定义HTML。这样,如果用户从浏览器中单击,它将显示为一个简单的页面,而不是一堆垃圾XML。如果在feed阅读器中使用了相同的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>
    

    有谁知道有没有一种方法可以用非常具体的feed样式来覆盖那些浏览器?有没有办法从Chrome中得到一些好东西?

    3 回复  |  直到 7 年前
        1
  •  4
  •   mckamey    15 年前

    如果feed响应的内容类型设置为XML,而不是Atom,Chrome似乎只应用XSLT处理指令。

    Content-Type: application/xml
    

    这不会显示任何样式(从技术上来说,这是更正确的类型):

    Content-Type: application/atom+xml
    
        2
  •  2
  •   user255579 user255579    15 年前

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

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

        3
  •  1
  •   bolk    15 年前

    我不知道如何愚弄IE&FF&Safari对RSS/a to m提要的自动显示,但在Chrome中,XSLT是通过 xml-stylesheet 处理指令; here is an example flickr .