Твиттер, кажется, и RSS 2.0 и Атом? - PullRequest
1 голос
/ 19 апреля 2010

Я анализирую различные фиды сайтов и собираю небольшую библиотеку, чтобы помочь мне сделать это.

Рассматривая спецификации Atom RFC и RSS 2.0 , каналы из Twitter кажутся комбинацией. Twitter определяет пространство имен Atom в структуре RSS 2.0?

GitHub использует Atom, тогда как Flickr (предлагает несколько, но по умолчанию «последний» фид из профилей пользователей) выглядит как RSS 2.0 .

Как Twitter может указать пространство имен Atom, а затем использовать RSS?

Это делает синтаксический анализ немного двусмысленным, если только я не игнорирую указанное пространство имен и просто проверяю структуру документа.

Ответы [ 2 ]

3 голосов
/ 19 апреля 2010

Twitter на самом деле вообще не определяет пространство имен для RSS, но на самом деле это RSS. Он задает пространство имен для Atom только потому, что он использует некоторые элементы атома для внутреннего использования (в частности, он использует atom:link для ссылки на URL фида.

Обратите внимание, что xmlns для атома имеет указанный префикс, что означает, что только те элементы с префиксом atom: в документе относятся к этому пространству имен.

Самый простой способ устранения неоднозначности практически - просто посмотреть на корневой элемент. Если это Атом, это будет feed. Если это RSS, это будет rss.

1 голос
/ 19 апреля 2010

Это определенно RSS. Во-первых, каналы Atom не используют канал или элемент. В свете этого, в отношении спецификации вы можете исключить Atom. И у меня есть догадка, что не против спецификации RSS объявить пространство имен.

В любом случае, вам не нужно беспокоиться о разборе каналов самостоятельно; получите парсер , который сделает всю работу за вас.

...