2012-04-05 2 views
2

Ich möchte einen RSS-Feed in einem XML-Dokument auf meinem Computer speichern. Ich verwende XPath mit Java, um das XML selbst zu parsen, also will ich nur eine Datei, die die Quelle (XML) enthält, die ich sehe, wenn ich die Quelle der RSS-Seite der Webseite betrachte.Wie RSS in XML-Datei speichern Java

Mit anderen Worten, anstatt die Quelle der RSS-Seite in eine Datei zu kopieren und einzufügen, die ich als XML-Datei speichere, möchte ich ein Programm schreiben, das dies für mich zieht.

Antwort

4

Sie müssen nicht einmal eine Bibliothek einführen, um das zu tun!

Holen Sie sich einfach einen URL-object auf den Rss-Feed, den Sie "herunterladen" möchten und verwenden Sie openConnection()-method, um einen URLConnection zu erhalten.

Sie können dann getInputStream()-method verwenden. Von diesem InputStream können Sie die ungeparste Quelle des RSS-Dokuments lesen (Sie sollten es mit einem BufferedInputStream umhüllen).

Dieser kann dann als String (im Speicher) gespeichert oder direkt auf die Festplatte geschrieben werden, indem eine FileOutputStream verwendet wird. https://gist.github.com/2320294

+0

Vielen Dank! Das ist völlig richtig, ich habe es funktioniert. Ich habe auch auf diese Seite verwiesen, um Hilfe beim Schreiben der Datei zu erhalten (ich wusste nicht, dass ich ein Byte-Array erstellen und Byte zum Schreiben eingeben musste): http://www.mkyong.com/java/how-to- convert-inputstream-in-file-in-java/ – blaughli

+0

@ blaughli müssen Sie dies nicht tun! Sie sollten einen 'BufferedOutputStream' im' FileOutputStream' verwenden. Dann können Sie einfach die Saiten füttern. Das Beispiel zeigt, wie man einen Puffer implementiert (zumindest die Idee) und das ist nicht was Sie brauchen. Ich werde einen Beispielcode installieren, wenn Java auf diesem Computer läuft. –

+0

@blaughli Ich habe ein Beispiel, wie dies getan werden kann (ohne manuelle Pufferung mit Byte-Arrays) in der Post. Hör zu! –

0

Sie können Apache commons HttpClient verwenden, um die Datei aus dem Internet zu erhalten. Die Verwendung dieser Bibliothek ist sehr praktisch. Hier ist die official tutorial.

+0

Danke, ich am Ende nicht die Apache-Bibliothek verwenden, aber ich habe es zu erkunden, und es kann in der Zukunft nützlich sein:


Eine Beispiel-Implementierung ist hier zu finden. Gut zu wissen, dass es für alle HTTP-Probleme da ist! – blaughli

+0

Toll :) Ich glaube, es wird eines Tages handlich (es hat für mich getan) – MByD