Android 来自特定rss新闻源的选择性新闻

Android 来自特定rss新闻源的选择性新闻,android,parse-platform,rss,Android,Parse Platform,Rss,在我的应用程序中,我想显示特定网站的RSS提要。但我不希望它显示完整的Rss提要,我只希望搜索和显示一些特定的标签,并且屏幕上只显示其相关链接 下面是我的解析器类代码:- package com.example.sara.rssfeed; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1

在我的应用程序中,我想显示特定网站的RSS提要。但我不希望它显示完整的Rss提要,我只希望搜索和显示一些特定的标签,并且屏幕上只显示其相关链接

下面是我的解析器类代码:-

package com.example.sara.rssfeed;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;

import android.util.Xml;

import com.example.sara.rssfeed.RssItem;

public class PcWorldRssParser {

    // We don't use namespaces
    private final String ns = null;

    public List<RssItem> parse(InputStream inputStream) throws XmlPullParserException, IOException {
        try {
            XmlPullParser parser = Xml.newPullParser();
            parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
            parser.setInput(inputStream, null);
            parser.nextTag();
            return readFeed(parser);
        } finally {
            inputStream.close();
        }
    }

    private List<RssItem> readFeed(XmlPullParser parser) throws XmlPullParserException, IOException {
        parser.require(XmlPullParser.START_TAG, null, "rss");
        String title = null;
        String link = null;
        List<RssItem> items = new ArrayList<RssItem>();
        while (parser.next() != XmlPullParser.END_DOCUMENT) {
            if (parser.getEventType() != XmlPullParser.START_TAG) {
                continue;
            }
            String name = parser.getName();
            if (name.equals("title")) {
                title = readTitle(parser);}

               else if (name.equals("link")) {
                   link = readLink(parser);}


            if (title=="Top Stories - Google News" && link=="http://news.google.com/news?hl=en&amp;ned=us") {
                RssItem item = new RssItem(title, link);
                items.add(item);
                title = null;
                link = null;
            }
        }
        return items;
    }

    private String readLink(XmlPullParser parser) throws XmlPullParserException, IOException {
        parser.require(XmlPullParser.START_TAG, ns, "link");
        String link = readText(parser);
        parser.require(XmlPullParser.END_TAG, ns, "link");
        return link;
    }

    private String readTitle(XmlPullParser parser) throws XmlPullParserException, IOException {
        parser.require(XmlPullParser.START_TAG, ns, "title");
        String title = readText(parser);
        parser.require(XmlPullParser.END_TAG, ns, "title");
        return title;
    }

    // For the tags title and link, extract their text values.
    private String readText(XmlPullParser parser) throws IOException, XmlPullParserException {
        String result = "";
        if (parser.next() == XmlPullParser.TEXT) {
            result = parser.getText();
            parser.nextTag();
        }
        return result;
    }
}
package com.example.sara.rssfeed;
导入java.io.IOException;
导入java.io.InputStream;
导入java.util.ArrayList;
导入java.util.List;
导入org.xmlpull.v1.XmlPullParser;
导入org.xmlpull.v1.XmlPullParserException;
导入android.util.Xml;
导入com.example.sara.rssfeed.RssItem;
公共类PCWorldsSpaser{
//我们不使用名称空间
私有最终字符串ns=null;
公共列表解析(InputStream InputStream)抛出XmlPullParserException,IOException{
试一试{
XmlPullParser=Xml.newPullParser();
setFeature(XmlPullParser.FEATURE_进程_名称空间,false);
setInput(inputStream,null);
parser.nextTag();
返回readFeed(解析器);
}最后{
inputStream.close();
}
}
私有列表readFeed(XmlPullParser解析器)抛出XmlPullParserException,IOException{
require(XmlPullParser.START_标记,null,“rss”);
字符串标题=null;
字符串链接=null;
列表项=新建ArrayList();
while(parser.next()!=XmlPullParser.END_文档){
if(parser.getEventType()!=XmlPullParser.START_标记){
继续;
}
String name=parser.getName();
如果(名称等于(“头衔”)){
title=readTitle(解析器);}
else if(name.equals(“link”)){
link=readLink(解析器);}
如果(标题=“热门新闻-谷歌新闻”&&link=”http://news.google.com/news?hl=en&;ned=美国){
RssItem项目=新RssItem(标题、链接);
项目。添加(项目);
title=null;
link=null;
}
}
退货项目;
}
私有字符串readLink(XmlPullParser解析器)抛出XmlPullParserException,IOException{
require(XmlPullParser.START_标记,ns,“link”);
字符串链接=读文本(解析器);
require(XmlPullParser.END_标记,ns,“link”);
返回链接;
}
私有字符串readTitle(XmlPullParser解析器)抛出XmlPullParserException,IOException{
require(XmlPullParser.START_标记,ns,“title”);
字符串title=readText(解析器);
require(XmlPullParser.END_标记,ns,“title”);
返回标题;
}
//对于标签标题和链接,提取其文本值。
私有字符串readText(XmlPullParser解析器)引发IOException,XmlPullParserException{
字符串结果=”;
if(parser.next()==XmlPullParser.TEXT){
结果=parser.getText();
parser.nextTag();
}
返回结果;
}
}
错误:

在线if(标题==“热门新闻-谷歌新闻”&& 链接==”http://news.google.com/news?hl=en&ned=us如果我把 title=空
链接=空的`

它显示完整的rss提要。但如果我给它特定的链接和标题标签来搜索,它什么也不会显示,只会显示一个空白屏幕

请帮助我,我做错了什么。
提前感谢。

我建议登录查看
标题和
链接实际提供的内容,可能不是您认为的内容。您知道任何其他获取筛选RSS新闻提要的方法,以便它只提供用户所需的新闻吗???我建议登录查看
标题和
链接实际提供的内容,它可能不是你想象的那样。你知道有没有其他方法可以获取过滤RSS新闻提要,从而只提供用户想要的新闻???