Per gestire i files in formato
OPML in java è sufficiente usare questo
pacchetto che integra questo supporto al framework
rome.
Eccone un semplice esempio dove prendo un InputReader in ingresso (il file XML in formato OPML, ma potrebbe essere qualsiasi altra cosa come un’url etc etc) e per ogni riga mi creo un oggetto Blogger che contiene una descrizione e un link al feed RSS o ATOM.
Questo codice è un parte dell’aggregatore di feed che ho realizzato per il JUG Sardegna ONLUS, quindi ci sono degli oggetti di contorno che uso per scopi differenti.
public List importaOpml(Reader documento) throws IllegalArgumentException, FeedException {
WireFeedInput input = new WireFeedInput();
List lista = new ArrayList();
Opml feed = (Opml) input.build(documento);
List outlines = (List) feed.getOutlines();
Blogger blogger = null;
for (Outline linea : outlines) {
if (linea.getChildren() != null && linea.getChildren().size() > 0) {
for (Outline figlio : (List) linea.getChildren()) {
blogger = inserisciBlogger(figlio);
if (blogger != null)
lista.add(blogger);
}
} else {
blogger = inserisciBlogger(linea);
if (blogger != null)
lista.add(blogger);
}
}
return lista;
}
private Blogger inserisciBlogger(Outline outline) {
LogService.getLogger(this.getClass()).info(“Importo per “+outline.getXmlUrl());
Blogger blogger = getBloggerService().getNuovoBlogger();
blogger.setDescrizione(outline.getText());
blogger.setLink(outline.getXmlUrl());
try{
getBloggerService().inserisciBlogger(blogger);
return blogger;
}catch (BloggerDuplicatoException e) {
//vado avanti
}
return null;
}