Java 如何用关键字过滤RSS提要?

Java 如何用关键字过滤RSS提要?,java,android,rss,Java,Android,Rss,我已经构建了一个android应用程序,其主页是RSS提要。我的应用程序的一个功能是让多个用户具有不同的偏好。 用户是否可以输入他们感兴趣的关键字,然后使用这些关键字过滤RSS提要提供的新闻? 我对安卓编程相当陌生,我完全被困在这一点上。 我真的很感激任何帮助或想法 我的RSS提要的主要代码部分(只需询问是否需要更多代码): 导入android.app.ProgressDialog; 导入android.content.Context; 导入android.os.AsyncTask; 导入and

我已经构建了一个android应用程序,其主页是RSS提要。我的应用程序的一个功能是让多个用户具有不同的偏好。 用户是否可以输入他们感兴趣的关键字,然后使用这些关键字过滤RSS提要提供的新闻? 我对安卓编程相当陌生,我完全被困在这一点上。 我真的很感激任何帮助或想法

我的RSS提要的主要代码部分(只需询问是否需要更多代码):

导入android.app.ProgressDialog;
导入android.content.Context;
导入android.os.AsyncTask;
导入android.provider.documents合同;
导入android.support.v7.widget.LinearLayoutManager;
导入android.support.v7.widget.RecyclerView;
导入android.util.Log;
导入org.w3c.dom.Document;
导入org.w3c.dom.Element;
导入org.w3c.dom.Node;
导入org.w3c.dom.NodeList;
导入java.io.InputStream;
导入java.net.HttpURLConnection;
导入java.net.MalformedURLException;
导入java.net.URL;
导入java.util.ArrayList;
导入javax.xml.parsers.DocumentBuilder;
导入javax.xml.parsers.DocumentBuilderFactory;
导入静态android.R.attr.data;
/**
*由Joe于2017年3月4日创建。
*/
公共类ReadRss扩展异步任务{
ArrayListfeedItems;
回收视图回收视图;
语境;
静态数组地址;
静止的{
地址=新的ArrayList();
地址。添加(“https://www.bloomberg.com/politics/feeds/site.xml");
地址。添加(“https://www.bloomberg.com/feeds/podcasts/etf_report.xml");
}
//字符串地址=”https://www.bloomberg.com/feeds/podcasts/etf_report.xml";
//String address2=“www.bloomberg.com/politics/feeds/site.xml”;
进行对话进行对话;
网址;
公共阅读器RSS(上下文上下文,RecyclerView RecyclerView){
this.recyclerView=recyclerView;
this.context=context;
progressDialog=新建progressDialog(上下文);
progressDialog.setMessage(“加载…”);
}
@凌驾
受保护的void onPreExecute(){
progressDialog.show();
super.onPreExecute();
}
@凌驾
受保护的void onPostExecute(void避免){
super.onPostExecute(避免);
progressDialog.disclose();
MyAdapter=新的MyAdapter(上下文、提要项);
setLayoutManager(新的LinearLayoutManager(上下文));
回收视图。附加装饰(新垂直空间(50));
recyclerView.setAdapter(适配器);
}
@凌驾
受保护的Void doInBackground(Void…参数){
ProcessXml(Getdata());
返回null;
}
私有void ProcessXml(ArrayList数据){
如果(数据!=null){
feedItems=新的ArrayList();
用于(文档:数据){
元素根=doc.getDocumentElement();
节点通道=root.getChildNodes().item(0);
NodeList items=channel.getChildNodes();
对于(int i=0;i
您应该使用选定的解析器解析xml文件(您选择了DOM解析,但我强烈建议您检查SimpleXML)。然后用解析后的数据填充列表。创建新方法,该方法将检查对象是否包含/等于所需的标记

  List<FeedItem> feeds = new ArrayList<>();
    for(FeedItem feedItem : feedItems){
        if (feedItem.getTitle().equals("tag which you want")){
            feeds.add(feedItem);
        }
    }
    return feeds;
List feed=new ArrayList();
用于(饲料项目饲料项目:饲料项目){
if(feedItem.getTitle().equals(“您想要的标记”)){
feeds.add(feedItem);
}
}
回馈;

您应该使用选定的解析器解析xml文件(您选择了DOM解析,但我强烈建议您检查SimpleXML)。然后用解析后的数据填充列表。创建新方法,该方法将检查对象是否包含/
  List<FeedItem> feeds = new ArrayList<>();
    for(FeedItem feedItem : feedItems){
        if (feedItem.getTitle().equals("tag which you want")){
            feeds.add(feedItem);
        }
    }
    return feeds;