2010-09-02 12 views
8

Ich versuche einen einfachen RSS-Reader für ein Klassenprojekt zu schreiben. Unser Buch zeigt ein Beispiel, indem es den DOM-Baum durchläuft. Ist das ein anständiger Ansatz für einen RSS-Reader? Würde ich bestimmte Tags ignorieren, die für mich uninteressant sind und nicht vom RSS Reader verwendet werden? Vielen Dank.Einen RSS-Reader in Java schreiben

Antwort

3

Es ist einer von zwei gängigen Ansätzen, also ja. Und ja, das Ignorieren von Tags, die nicht von Interesse sind, ist ein guter Weg, damit umzugehen. Wenn Sie es nicht brauchen, brauchen Sie es nicht zu beachten. Wenn Sie im Voraus genau wissen, welche Tags Sie benötigen, müssen Sie wahrscheinlich nicht den gesamten DOM-Baum durchlaufen.

Sie könnten auch einen SAX-Parser verwenden, der wahrscheinlich schneller und weniger speicherintensiv wäre, aber in diesem Fall wahrscheinlich nicht notwendig ist, abhängig davon, wie viele Ergebnisse Sie im Feed haben möchten.

+0

Bevorzugen Sie die Verwendung von SAX, da der RSS-Feed schreibgeschützt sein soll: Sie müssen nicht das vollständige DOM bereitstellen, sondern nur die Liste interessanter Elemente abrufen. Darüber hinaus ist SAX leicht. – Benj

2

Verarbeitung Atom-Feeds mit JAXB

Sie Ihre XML-Objekte mit JAXB Karte könnte. Sie könnten diese Objekte dann in Ihrem RSS-Reader verwenden.

Die JAXB Referenz-Implementierung in Java SE enthalten ist 6, gibt es auch andere Implementierungen wie moxy (Ich bin der Tech-Leitung):

Sie müssen nur die Teile abbilden, an denen Sie interessiert sind.

Verarbeitung Atom-Feeds mit SDO

Sie auch Service Data Objects (SDO), dies zu tun verwenden:

3

Nun, die Schönheit des RSS-Feeds Sie kommen immer in einer Standardstruktur, auch wenn einige Feeds nicht-standardisierte Felder enthalten, wie Google Picasas RSS-Feed. Der einfachste Ansatz ist meiner Meinung nach, ein Tool zu verwenden, mit dem Sie den RSS-XML-Feed in Ihre RSS-Bean entpacken können. Auf diese Weise müssen Sie nicht zu viel Code schreiben, und Sie können auswählen, welche Felder Sie möchten und Felder ignorieren, die Sie nicht möchten.

In meinem Fall verwende ich Castor, um den Unmarshalling-Prozess durchzuführen, wo ich den Google Picasa RSS-Feed lese und nur die Felder sammle, die ich möchte. Hoffe das hilft.

1

Ich habe RSS mit der JDOM-Bibliothek analysiert und produziert. Es ist schon lange her und wird regelmäßig aktualisiert, aber ich habe die Erfahrung gemacht, dass es nicht aktualisiert werden musste. Vielleicht möchten Sie es sich ansehen, aber da es sehr mächtig ist, können Sie feststellen, dass es zu viel Funktionalität bietet. http://jdom.org/

6

Zur Inspiration können Sie bei ROME suchen, ein Open-Source-Tool für RSS Umgang & Atom-Feeds.

+0

Perfekt, das war sehr hilfreich! RSS läuft innerhalb von Java in ca. 5 Minuten :) Wird benötigt, um jdom (Abhängigkeit) sowie Rom herunterzuladen – Syntax