Я пытаюсь использовать ROME для разбора RSS-канал, как это:Как читать поле веб-мастеров Рима
url = new URL("http://www.rssboard.org/files/sample-rss-2.xml");
XmlReader reader = new XmlReader(url);
SyndFeedInput input = new SyndFeedInput();
SyndFeed feed = input.build(reader);
System.out.println(feed.getAuthor());
Однако, я не могу найти способ, чтобы получить поле «веб-мастеров» или любой другой заказной поле.
Я прочитал о пользовательских модулях в Риме от here, но я не мог понять, как его использовать. Я создаю аналогичные SamplleModule
, SampleModuleImpl
и SampleModule
Parser для поля webMaster, но я не знаю, как его использовать!
Это классы, которые я реализовал: SamplleModule:
public interface SampleModule extends Module {
public static final String URI =
"http://www.rssboard.org/files/sample-rss-2.xml";
public String getWebMaster();
public void setWebMaster(String webMaster);
}
SampleModuleImpl:
public class SampleModuleImpl extends ModuleImpl implements SampleModule {
private static final long serialVersionUID = 1L;
private String _webMaster;
protected SampleModuleImpl() {
super(SampleModule.class, SampleModule.URI);
}
@Override
public void copyFrom(Object obj) {
SampleModule sm = (SampleModule) obj;
setWebMaster(sm.getWebMaster());
}
@Override
public Class getInterface() {
return SampleModule.class;
}
@Override
public String getWebMaster() {
return _webMaster;
}
@Override
public void setWebMaster(String webMaster) {
_webMaster = webMaster;
}
}
и SampleModuleParser:
public class SampleModuleParser implements ModuleParser {
private static final Namespace SAMPLE_NS = Namespace.getNamespace("sample",
SampleModule.URI);
@Override
public String getNamespaceUri() {
return SampleModule.URI;
}
@Override
public Module parse(Element dcRoot) {
boolean foundSomething = false;
SampleModule fm = new SampleModuleImpl();
Element e = dcRoot.getChild("webMaster");
if (e != null) {
foundSomething = true;
fm.setWebMaster(e.getText());
}
return (foundSomething) ? fm : null;
}
}
Я также добавил этот модуль рим. свойства. Я просто не знаю, как их использовать в моем методе чтения. Любые идеи?
где в rome.properties вы добавить его? Убедитесь, что вы устанавливаете его для элемента ModuleParser для версии RSS, которую вы пытаетесь проанализировать. –
Это не проблема. Вопрос в том, что я должен добавить в свой код, чтобы получить метод getWebMaster? Я имею в виду мой первый код. –