views:

62

answers:

0

I've written an RSS feed parser in Java (running on Android) and it parses some feeds perfectly, and others not at all. I get the following error when it tries to parse Slashdot (http://rss.slashdot.org/Slashdot/slashdot)

org.apache.harmony.xml.ExpatParser$ParseException: At line 1, column 0: unbound prefix

If I try to parse Wired (http://feeds.wired.com/wired/index)

org.apache.harmony.xml.ExpatParser$ParseException: At line 1, column 0: syntax error

If I try to parse AndroidGuys (http://feeds.feedburner.com/androidguyscom)

org.apache.harmony.xml.ExpatParser$ParseException: At line 1, column 0: syntax error

Here is some code for my parser.

public void updateArticles(Context ctx, Feed feed, int numDaysToGet) {
    try {
        targetFlag = TARGET_ARTICLES;
        tweetDB = new TweetMonsterDBAdapter(ctx);
        tweetDB.open();
        currentFeed = feed;
        TimeZone.setDefault(TimeZone.getTimeZone("UTC"));  // or "Etc/GMT-1"

        Date currentDate = new Date();
        long dateInMillis = currentDate.getTime();
        oldestDate.setTime(dateInMillis-(dayInMillis*numDaysToGet));

        SAXParserFactory spf = SAXParserFactory.newInstance();
        SAXParser sp = spf.newSAXParser();
        XMLReader xr = sp.getXMLReader();
        xr.setContentHandler(this);
        xr.parse(new InputSource(currentFeed.url.openStream()));

    } catch (IOException e) {
        Log.e("TweetMonster", e.toString());
    } catch (SAXException e) {
        tweetDB.close();
        Log.e("TweetMonster", e.toString());
    } catch (ParserConfigurationException e) {
        Log.e("TweetMonster", e.toString());
    }
    tweetDB.close();
}

It doesn't even get into my startElement method.