2012-04-05 9 views
2

Я хочу сохранить RSS-канал в XML-документ на своем компьютере. Я использую XPath с Java для синтаксического анализа XML, поэтому все, что я хочу, это файл, содержащий источник (XML), который я вижу при просмотре источника страницы RSS на веб-сайте.Как сохранить RSS в xml-файл java

Другими словами, вместо копирования и вставки источника страницы RSS в файл, который я сохраняю как файл XML, я хотел бы написать программу, которая тянет это для меня.

ответ

4

Вам даже не нужно вводить библиотеку, чтобы сделать это!

Просто получите URL-object на Rss-Feed, которую хотите «скачать», и используйте openConnection()-method, чтобы получить URLConnection.

Затем вы можете использовать его getInputStream()-method. Из этого InputStream вы можете прочитать unparsed источник RSS-документа (вы должны обернуть его BufferedInputStream).

Это можно сохранить в виде строки (в памяти) или непосредственно записать на жесткий диск с помощью FileOutputStream.


Пример-реализация может быть найден здесь: https://gist.github.com/2320294

+0

Спасибо! Это совершенно верно, у меня это работает. Я также ссылался на этот сайт за помощью в написании файла (я не понимал, что должен был сделать байтовый массив и подавать байты для записи()): http://www.mkyong.com/java/how-to- convert-inputstream-to-file-in-java/ – blaughli

+0

@blaughli вам не обязательно это делать! Вы должны использовать 'BufferedOutputStream' в' FileOutputStream'. Затем вы можете просто подать строки. В этом примере показано, как реализовать буфер (по крайней мере, идею), и это не то, что вам нужно. Я приведу примерный код, когда на этом компьютере работает Java. –

+0

@blaughli Я включил пример того, как это можно сделать (без ручной буферизации с использованием байтовых массивов) в сообщении. Проверьте это! –

0

Вы можете использовать Apache commons HttpClient, чтобы получить файл из Интернета. Использование этой библиотеки очень удобно. Вот official tutorial.

+0

Спасибо, я в конечном итоге не используя библиотеку Apache, но я изучить его, и это может пригодиться в будущем. Хорошо знать, что он существует для всех проблем HTTP! – blaughli

+0

Отлично :) Я считаю, что он станет удобным в один прекрасный день (он сделал для меня) – MByD

Смежные вопросы