Как отобразить каналы Atom / RSS в браузере с пользовательским XSLT? - PullRequest
3 голосов
/ 12 января 2010

Примерно в 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 ]

4 голосов
/ 13 января 2010

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

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

Content-Type: application/xml

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

Content-Type: application/atom+xml
2 голосов
/ 21 января 2010

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

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

1 голос
/ 12 января 2010

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

...