我正在使用ROME解析器来解析我的RSS/Atom提要.现在问题是它没有提供新闻提要/条目的图像URL.问题的部分原因还在于Feed不一致,并且它们使图像URL不一致.
BBC新闻将图片网址放在<media:thumbnail...>元素内
<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&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>
Run Code Online (Sandbox Code Playgroud)
但是一些新闻提要将图像放在封闭元素中.有些饲料根本没有它们.
所以我的问题是; 如果它们存在于Feed中,我怎么能得到它们.到目前为止,罗马API一直对我很有用; 但现在我陷入了困境.
我可以找出从Feed中获取图片网址的方法.部分问题是因为罗马没有使用泛型; 因此无法<media:thumbnail..正确读取元素,因此丢失了作为属性的图像的URL.
调试后,我可以找出确切的参数化类型然后很容易:)
List<Element> foreignMarkups = (List<Element>) entry.getForeignMarkup();
for (Element foreignMarkup : foreignMarkups) {
String imgURL = foreignMarkup.getAttribute("url").getValue();
//read width and height
}
Run Code Online (Sandbox Code Playgroud)
我发现的还有一些新闻提要; 图像的url位于Enclosure元素内,如下所示:
<enclosure url="http://www.wired.com/reviews/wp-content/uploads/2013/02/lights_remote_1-200x100.jpg" type="image/jpeg" length="48000"/>
所以我也在检查enclosure元素是否<media:thumbnail..在Feed中不存在:
List<SyndEnclosure> encls = entry.getEnclosures();
if(!encls.isEmpty()){
for(SyndEnclosure e : encls){
String imgURL = e.getUrl().toString();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2712 次 |
| 最近记录: |