Я создал свой собственный DefaultHandler для синтаксического анализа rss-каналов, и для большинства фидов он отлично работает, однако для ESPN он отключает часть URL-адреса статьи из-за того, как ESPN форматирует URL-адреса. Пример полного URL-адреса статьи из ESPN..
http://sports.espn.go.com/nba/news/story?id=5189101&campaign=rss&source=ESPNHeadlines
Проблема по какой-то причине метод DefaultHandler символов получает только это из тега, который содержит указанный выше URL.
http://sports.espn.go.com/nba/news/story?id=5189101
Как вы можете видеть, он отсекает все от URL-адреса из кода возврата и возврата. Как я могу заставить анализатор SAX не вырезать строку в этом escape-коде? Для реф. вот мой метод символов.
public void characters(char ch[], int start, int length) {
String chars = (new String(ch).substring(start, start + length));
try {
// If not in item, then title/link refers to feed
if (!inItem) {
if (inTitle)
currentFeed.title = chars;
} else {
if (inLink)
currentArticle.url = new URL(chars);
if (inTitle)
currentArticle.title = chars;
if (inDescription)
currentArticle.description = chars;
if (inPubDate)
currentArticle.pubDate = chars;
if (inEnclosure) {
}
}
} catch (MalformedURLException e) {
Log.e("RSSReader", e.toString());
}
}
Rob W.