Какая наиболее широко используемая библиотека для парсинга для Android

Я хочу создать приложение, которое (среди прочего) может анализировать каналы, загруженные через сеть. Учитывая, что стандартные библиотеки Android + Core Java не предоставляют службу парсера фидов, и я не хочу писать ее самостоятельно, можете ли вы назначить парсер Java feed, который будет работать на Android-устройстве с низким спектром.

Я только начинаю изучать Android, заполнив примеры Hello World, которые я хотел бы переместить в свое первое приложение. Я хочу сделать что-то, что анализирует некоторые ATOM или RSS-каналы и отображает некоторый контент в GridView.

Материал UI, кажется, очень хорошо документирован в Android, и у Sun есть много примеров того, как получить URL-адрес, однако я не настолько разбираюсь в синтаксическом анализе.

Раньше, когда я делал подобные вещи в Pythion, я использую общий синтаксический анализатор каналов, который может разбирать почти все (например, RSS, ATOM). Существует множество хороших реализаций Python такого рода, однако я не нашел ничего подобного в составе стандартной библиотеки Android.

На работе я сделал (легкое) обслуживание на корпоративных Java-приложениях. Как правило, общая практика заключается в том, чтобы использовать любые классы, которые вам нравятся (например, Jararta Commons feed-parser) и просто связывать их с CLASSPATH. Настольным приложениям все равно, насколько важны зависимости, однако я уверен, что это большая проблема при компиляции пакета APK для использования на устройстве с ограниченными возможностями. Конечно, я должен быть очень придирчив к тому, из каких ящиков я зависеть, не так ли? Могу ли я просто продолжать использовать те же классы, что и для настольных приложений?

Заметки:

  • Мой фон находится в Python (только с легким опытом Java)
  • В идеале я хотел бы использовать что-то популярное (не обязательно лучшее), поэтому я могу получить поддержку.
  • Еще лучше, я бы хотел использовать встроенные функции библиотеки, поэтому мне не нужно добавлять какие-либо сторонние Jars для раздувания моего приложения.
  • В настоящее время настроен на Android 1.5 (потому что это то, что работает мое устройство)

Рим, по- видимому, является одной из самых популярных java-библиотек RSS. Думаю, это тоже можно использовать на Android.

Поскольку каналы RSS / Atom представляют собой XML-документы, вы можете использовать SAXParser , который является частью стандартных библиотек Java, включенных в Android.

Достаточно легко настроить реализацию синтаксического анализатора SAX, но сложная часть состоит в том, чтобы анализировать любой канал под солнцем.

Вам нужно обслуживать все форматы RSS 1, RSS 2, Atom и т. Д. Даже тогда вам придется бороться с плохо отформатированными фидами.

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

У меня есть следующая служба, запущенная на AppEngine, которая позволяет значительно упростить синтаксический анализ XML / JSON. Для ответа есть фиксированная и простая структура. Вы можете использовать это для разбора

http://evecal.appspot.com/feedParser

Вы можете отправлять запросы POST и GET со следующими параметрами.

FeedLink: URL-адрес ответа RSS-канала: JSON или XML в качестве формата ответа

Примеры:

Для запроса POST

Curl –data-urlencode "feedLink = http: //feeds.bbci.co.uk/news/world/rss.xml" –data-urlencode "response = json" http://evecal.appspot.com/feedParser

Для запроса GET

evecal.appspot.com/feedParser?feedLink=http://feeds.nytimes.com/nyt/rss/HomePage&response=xml

Это приложение также использует приложение «NewsSpeak» для Android.

Проверьте лёгкую библиотеку Android, чтобы читать части RSS 2.0-каналов в https://github.com/ahorn/android-rss . Я не знаю, является ли самая популярная библиотека для Android, но это выглядит хорошо для меня. Я еще не пробовал.

Существует также эта новая библиотека RSS, которую я написал: https://github.com/Pkmmte/PkRSS

Он очень легкий, эффективный, быстрый, настраиваемый и чрезвычайно простой в использовании. Например, следующий код загружает и анализирует ваш канал RSS в фоновом потоке:

PkRSS.with(this).load(url).async(); 

Легко, правда? На странице GitHub есть более подробная информация.

Intereting Posts
Почему фрагмент не отображает макет в моем навигационном ящике Изменение цвета стрелки панели действий динамически Как программно установить атрибут стиля в представлении Тип ввода EditText textCapSentences не работает на Lollipop Как начать службу, которая определена в другом пакете? Результаты проекта Firebase в ошибке «Ошибка авторизации / отказа от сети» при входе в систему Что лучше использовать, массив hardcoded array или resource string? Скрипт `create` для Cordova Android не создает новые ошибки проекта с настройкой java / ant Чтобы проверить, действительно ли приложение использует разрешения, указанные в файле манифеста Как использовать rxandroid для прослушивания обновления местоположения gps Перемещение представления галереи к следующему изображению на одном экране в Android? ObservableInt вызывает сбои в библиотеке DataBinding Один экземпляр действия в android Служба Android: процесс против не Андроид отключил поискBar без затемнения