Я создал свой собственный 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 из кода амперсанда и escape-кода и после него. Как я могу заставить синтаксический анализатор 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());
}
}
Роб У.