Не удается прочитать URL-адрес изображения из RSS с помощью Rome API

Мой вопрос почти такой же, как и в теме, которую я нашел - Невозможно прочитать URL-адрес изображения из фида с помощью Rome API, за исключением двух условий. Итак, как читать URL изображения:

<item> 
  <title>Dementia in care homes 'more common'</title>  
  <description>Eight out of 10 residents in care homes are now thought to have dementia or severe memory problems, new data shows.</description>  
  <link>http://www.bbc.co.uk/news/health-21579394#sa-ns_mchannel=rss&amp;ns_source=PublicRSS20-sa</link>  
  <guid isPermaLink="false">http://www.bbc.co.uk/news/health-21579394</guid>  
  <pubDate>Tue, 26 Feb 2013 00:28:31 GMT</pubDate>  
  <media:thumbnail width="66" height="49" url="http://news.bbcimg.co.uk/media/images/66064000/jpg/_66064884_c0016428-geriatric_care-spl.jpg"/>  
  <media:thumbnail width="144" height="81" url="http://news.bbcimg.co.uk/media/images/66064000/jpg/_66064885_c0016428-geriatric_care-spl.jpg"/> 
</item>

Если разметка не содержит информации об URL изображения

 List<Element> foreignMarkups = (List<Element>) entry.getForeignMarkup();
 for (Element foreignMarkup : foreignMarkups) {
  String imgURL = foreignMarkup.getAttribute("url").getValue(); 
    //read width and height
 }

и entry.getEnclosures() тоже. Более того, я просмотрел структуру записи в режиме отладки и не нашел URL изображения. В этой структуре я вижу только пространства имен media:thumbnail.


person Volodymyr    schedule 09.06.2016    source источник


Ответы (1)


Попробуйте медиамодуль Rome чтобы прочитать эти URL-адреса:

import com.rometools.modules.mediarss.MediaEntryModule;
import com.rometools.modules.mediarss.types.Thumbnail;
import com.rometools.rome.feed.module.Module;
...
for (Module module : entry.getModules()) {
    if (module instanceof MediaEntryModule) {
        MediaEntryModule media = (MediaEntryModule)module;
        for (Thumbnail thumb : media.getMetadata().getThumbnail()) {
            System.out.println(thumb.getUrl());
        }
    }
}

Чтобы это работало, вам нужны rome-modules в пути к классам.

person janih    schedule 10.06.2016