从RSS源获取Imagesg时出现问题

时间:2014-09-08 11:28:37

标签: java android rss

我正在尝试将RSS源添加到我的Android应用程序中,我正在检索Feed,例如标题,描述和Feed的链接,但无法获取特定Feed的图像。

以下是我的DefaultXmlHandler类。请过去帮帮我。

 public class XmlHandler extends DefaultHandler {

private RssFeedStructure feedStr = new RssFeedStructure();
private List<RssFeedStructure> rssList = new ArrayList<RssFeedStructure>();

private int articlesAdded = 0;

// Number of articles to download
private static final int ARTICLES_LIMIT = 15;

StringBuffer chars = new StringBuffer();

public void startElement(String uri, String localName, String qName, Attributes atts) {
    chars = new StringBuffer();

    if (qName.equalsIgnoreCase("media:content"))

    {
        if(!atts.getValue("url").toString().equalsIgnoreCase("null")){
            feedStr.setImgLink(atts.getValue("url").toString());
        }
        else{
            feedStr.setImgLink("");
        }
    }

}
public void endElement(String uri, String localName, String qName) throws SAXException {
    if (localName.equalsIgnoreCase("title"))
    {
        feedStr.setTitle(chars.toString());
    }
    else if (localName.equalsIgnoreCase("description"))
    {

        feedStr.setDescription(chars.toString());
    }
    else if (localName.equalsIgnoreCase("pubDate"))
    {

        feedStr.setPubDate(chars.toString());
    }
    else if (localName.equalsIgnoreCase("encoded"))
    {

        feedStr.setEncodedContent(chars.toString());
    }
    else if (qName.equalsIgnoreCase("media:content"))

    {

    }
    else if (localName.equalsIgnoreCase("link"))
    {
        try {
            feedStr.setUrl(new URL(chars.toString()));
        }catch (Exception e){}

    }
    if (localName.equalsIgnoreCase("item")) {
        rssList.add(feedStr);

        feedStr = new RssFeedStructure();
        articlesAdded++;
        if (articlesAdded >= ARTICLES_LIMIT)
        {
            throw new SAXException();
        }
    }
}

public void characters(char ch[], int start, int length) {
    chars.append(new String(ch, start, length));
}


public List<RssFeedStructure> getLatestArticles(String feedUrl) {
    URL url = null;
    try {

        SAXParserFactory spf = SAXParserFactory.newInstance();
        SAXParser sp = spf.newSAXParser();
        XMLReader xr = sp.getXMLReader();
        url = new URL(feedUrl);
        xr.setContentHandler(this);
        xr.parse(new InputSource(url.openStream()));
    } catch (IOException e) {
    } catch (SAXException e) {

    } catch (ParserConfigurationException e) {

    }

    return rssList;
}

}

0 个答案:

没有答案