Как отобразить каналы Atom/RSS в браузере с пользовательским XSLT?

Примерно в 2006 году я написал хороший XSLT, который преобразовал мои RSS-каналы в пользовательский HTML. Таким образом, если пользователь щелкнет по браузеру, он будет отображаться как простая страница, а не как куча ненужного XML. Если тот же URL-адрес использовался в программе чтения каналов, он был обработан правильно, и все было гладко.

В наши дни большинство браузеров (IE, 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?

3 ответа

Похоже, что Chrome применяет инструкцию обработки XSLT только в том случае, если для Content-Type для ответа канала задано значение XML, а не Atom.

Это отображает XSLT в Chrome:

Content-Type: application/xml

Это не отображает стили (это технически более правильный тип):

Content-Type: application/atom+xml

Теперь поведение большинства браузеров по умолчанию заключается в применении собственного XSLT к любому каналу Atom/RSS, с которым они сталкиваются, что очень раздражает. Канал определяется через тип mime application/atom+xml для Atom и application/rss+xml для RSS

Раньше вы могли обойти это, заполнив первые 512 байт потока с помощью crud в виде комментария. Это исключило бы перехват фида в браузере и позволило бы вам применить свою собственную таблицу стилей XSL. Для меня это работало годами, но в IE8 это поведение исчезло из окна, и комментарий в 512 байт больше не работает. Теперь я переключился на обработку на стороне сервера, но я все еще оплакиваю это решение от браузера.

Я не знаю, как обмануть автоматическое отображение IE / FF и Safari каналов RSS/Atom, но в Chrome XSLT правильно применяется через xml-stylesheet инструкция по обработке; Вот пример из пула Randonneur Group на Flickr.

Другие вопросы по тегам