ROME 如何确定提要上是否使用了自定义模块?

How would ROME find out if a custom module is used on a feed?

我目前正在使用 ROME 对 Podcast 提要进行 RSS 处理。目前,这些提要可以用不同的方式组成。 (其中一个例外是在 Itunes 提要模式中)。

自定义提要阅读如何与 Rome 一起工作,Modules package? ROME 会自动将 feed/entries 对象转换为 iTunes 可兼容数据对象吗?有这样的例子吗?

是的,如果您的类路径中有 rome-modules,Rome 会自动为您提供元数据模块:

SyndFeed feed = ..
for(SyndEntry entry : feed.getEntries()) {
    for (Module module : entry.getModules()) {
        System.out.println(module.getClass());

        if (module instanceof EntryInformation) {
            EntryInformation itunesEntry = (EntryInformation)module;
            ..
        }
    }
}

对于a certain podcast feed,这将打印出

class com.rometools.rome.feed.module.DCModuleImpl
class com.rometools.modules.content.ContentModuleImpl
class com.rometools.modules.slash.SlashImpl
class com.rometools.modules.itunes.EntryInformationImpl