Ich versuche, einen grundlegenden 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? Danke.
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önnen auch einen SAX-Parser verwenden, der wahrscheinlich schneller und weniger speicherintensiv ist, aber in diesem Fall wahrscheinlich nicht notwendig ist, abhängig davon, wie viele Ergebnisse Sie im Feed haben möchten.
Nun, die Schönheit des RSS-Feeds liegt immer in einer gewissen Standardstruktur, obwohl 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 benutze ich Castor , um den Prozess der Neuprogrammierung durchzuführen, bei dem ich den RSS-Feed von Google Picasa gelesen habe sammle nur die Felder, die ich möchte. Hoffe, das hilft.
Atom-Feeds mit JAXB verarbeiten
Sie können XML auch mit JAXB Objekten zuordnen. Sie könnten diese Objekte dann in Ihrem RSS-Reader verwenden.
Die JAXB-Referenzimplementierung ist in Java SE 6 enthalten, es gibt auch andere Implementierungen wie MOXy (ich bin der technische Leiter):
Sie müssen nur die Teile zuordnen, an denen Sie interessiert sind.
Atom-Feeds mit SDO verarbeiten
Sie können hierzu auch Service Data Objects (SDO) verwenden:
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. Ссылка