Написание программы чтения RSS на Java - PullRequest
8 голосов
/ 02 сентября 2010

Я пытаюсь написать базовую программу чтения RSS для проекта класса. Наша книга показывает пример, пройдясь по дереву DOM. Это достойный подход для чтения RSS? Буду ли я просто игнорировать некоторые теги, которые мне не интересны и не будут использоваться программой чтения RSS? Спасибо.

Ответы [ 5 ]

6 голосов
/ 03 сентября 2010

Для вдохновения вы можете взглянуть на ROME , инструмент с открытым исходным кодом для обработки каналов RSS & Atom.

3 голосов
/ 03 сентября 2010

Что ж, красота RSS-канала заключается в том, что они всегда имеют стандартную структуру, хотя некоторые каналы содержат нестандартные поля, такие как RSS-канал Google Picasa. На мой взгляд, самый простой подход - использовать инструмент, позволяющий вам демонтировать RSS-канал RSS в ваш bean-компонент RSS. Таким образом, вам не нужно писать слишком много кода, и вы можете выбрать, какие поля вы хотите, и игнорировать поля, которые вам не нужны.

В моем случае я использую Castor для выполнения процесса демаршаллинга, где я читаю RSS-канал Google Picasa и собираю только те поля, которые мне нужны. Надеюсь, это поможет.

3 голосов
/ 02 сентября 2010

Это один из двух распространенных подходов, так что да.И да, игнорирование тегов, которые не представляют интереса, является хорошим способом справиться с этим.Если вам это не нужно, не нужно это принимать к сведению.Если вы заранее точно знаете, какие теги вам нужны, вам, вероятно, не нужно обходить все дерево DOM.

Вы также можете использовать синтаксический анализатор SAX, который, вероятно, будет быстрее и менее ресурсоемким, хотя, вероятно, нетнеобходимо в этом случае, в зависимости от того, сколько результатов вы хотите получить в ленте.

2 голосов
/ 02 сентября 2010

Обработка каналов Atom с помощью JAXB

Вы также можете сопоставить свой XML с объектами, используя JAXB.Затем вы можете использовать эти объекты в вашем RSS-ридере.

Ссылочная реализация JAXB включена в Java SE 6, есть и другие реализации, такие как MOXy (я технический руководитель):

Вам нужно только сопоставить интересующие вас части.

Обработка каналов атома с помощью SDO

Вы также можете использовать объекты служебных данных (SDO) для этого:

1 голос
/ 03 сентября 2010

Я проанализировал и создал RSS с библиотекой JDOM. Это было в течение долгого времени и часто обновляется, но мой опыт показывает, что он не нуждался в обновлении. Возможно, вы захотите взглянуть на него, но, поскольку он достаточно мощный, вы можете обнаружить, что он предлагает слишком много функций. http://jdom.org/

...