获取RSS源时将MediaEntryModule设置为null。无法获取媒体内容

时间:2013-12-20 08:12:38

标签: java rss

我将MediaEntryModule视为null。因此,我无法获取媒体内容,如图像,previewImage,视频,音频详细信息。

调试时发现SyndEntry中的Module实现正在使用以下内容:

DCModuleImpl.interface = interface com.sun.syndication.feed.module.DCModule DCModuleImpl.uri = http://purl.org/dc/elements/1.1/

MediaEntryModule mediaModule =(MediaEntryModule)entry.getModule(MediaEntryModule.URI); mediaModule将变为null。

java 6代码中使用的jar是。

罗马-1.0.jar 罗马模块-1.0.jar

1 个答案:

答案 0 :(得分:0)

我找到了答案。 如果没有通过罗马API读取rss feed的唯一方法是。您需要获取该Feed消息的ulr,如下所示:

com.sun.syndication.feed.synd.SyndEntry entry = //get from RSS Url using rome api
String link=entry.getLink();
URL res = new URL(url);
Document doc = Jsoup.connect(url).get();

网址res =新网址(网址);             文档doc = Jsoup.connect(url).get();

        URL res = new URL(url);
        Document doc = Jsoup.connect(url).get();

        Element head = doc.head();
        Elements titleTags = head.getElementsByTag("title");
        if (!titleTags.isEmpty()) {
        title = titleTags.text();
    } else {
        Elements metaTitle = head.select("meta[property=og:title]");
        title = metaTitle.attr("content");
        if (metaTitle.isEmpty()) {
            Elements metaTitle = head.select("meta[name=twitter:title]");
            title = metaTitle.attr("content");
        }
    }

    String description = "";
    Elements metaDescription = head.select("meta[name=description]");
    if (!metaDescription.isEmpty()) {
        description = metaDescription.attr("content");
    } else {
        Elements metaDescription = head.select("meta[property=og:description]");
        if (!metaDescriptionFacebook.isEmpty()) {
            description = metaDescriptionFacebook.attr("content");
        } else {
            metaDescription = head.select("meta[name=twitter:description]");
            description = metaDescription.attr("content");
        }
    }   
    return description;

    String previewUrl = "";
    Elements metaImage = head.select("link[rel=image_src]");
    if (!metaImage.isEmpty()) {
        previewUrl = metaImage.first().absUrl("href");
    } else {
        Elements metaImage= head.select("meta[property=og:image]");
        if (!metaImageFacebook.isEmpty() && StringUtils.isNotBlank(metaImage.attr("content"))) {
            previewUrl = metaImage.first().absUrl("content");
        } else {
            Elements metaImage = head.select("meta[name=twitter:image]");
            if (!metaImage.isEmpty() && StringUtils.isNotBlank(metaImage.attr("content"))) {
                previewUrl = metaImage.first().absUrl("content");
            }
        }
    }

您可以从Doc元素中获取更多内容,如视频,音频等。