Я бы не рекомендовал пытаться реализовать свой собственный парсер RSS, а вместо этого использовал бы стандартную библиотеку для этого.
Вам нужно обслуживать все форматы 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
Моё приложение для Android "NewsSpeak" тоже использует это.