Поддерживает ли JFeed изображения RSS? - PullRequest
1 голос
/ 30 марта 2010

Я посмотрел readme JFeed, и в нем ничего не сказано, чтобы добраться до изображения элемента RSS:

Свойства JFeedItem

* item.title
* item.link
* item.description
* item.updated
* item.id

Кто-нибудь знает способ парсинга этих изображений?

1 Ответ

3 голосов
/ 30 марта 2010

Краткий ответ " Нет ".

По умолчанию отсутствует jFeed поддержка доступа к изображениям для RSS (или доступа к значкам / логотипам для ATOM).

Тем не менее, вы всегда можете расширить библиотеку для поддержки изображений каналов. Например, в jrss.js вы можете добавить:

var image = jQuery('image', xml).eq(0);

this.image = new Object();
this.image.url = jQuery(image).find('url:first').text();
this.image.title = jQuery(image).find('title:first').text();
this.image.link = jQuery(image).find('link:first').text();

Из RSS-канала вы сможете получить доступ к:

feed.image.url

Но это только облегчает доступ к графике для всего канала, а не для отдельных элементов.

Для поддержки отдельных изображений элементов вам необходимо расширить jFeed, чтобы он каким-то образом поддерживал атрибуты.

Например, для поддержки вложений RSS 2.0 вы можете сложить атрибуты в элементы, чтобы иметь доступ к чему-то вроде:

item.enclosure.url

В jrss.js вы можете добавить что-то вроде:

jQuery('item', xml).each( function() {

    var item = new JFeedItem();

    item.title = jQuery(this).find('title').eq(0).text();
    item.link = jQuery(this).find('link').eq(0).text();
    item.description = jQuery(this).find('description').eq(0).text();
    item.updated = jQuery(this).find('pubDate').eq(0).text();
    item.id = jQuery(this).find('guid').eq(0).text();

    item.enclosure = new Object();

    var enc = jQuery(this).find('enclosure');

    item.enclosure.url = jQuery(enc).attr('url');
    item.enclosure.length = jQuery(enc).attr('length');
    item.enclosure.type = jQuery(enc).attr('type');

    feed.items.push(item);
});

Я устал и придумываю это, как я иду, вы можете сказать? ;)

...