无法以字符串格式解析rss内容并将其存储在beans的arrayList中



我的代码中有RSS字符串,它是从数据库中提取的。我需要解析每个值,并将其存储在Beans的ArrayList中。例如,title、link和description中的所有值都应该存储在arraylist中。

这是我的Bean类

public class RssBean {
String title;
String link;
String description;
public RssBean(String title,String link,String description)
{
    this.title=title;
    this.link  = link;
    this.description = description; 
}
public String getTitle(){
    return title;
}
public void setTitle(String title){
    this.title = title;
}
public String getLink(){
    return link;
}
public void setLink(String link){
    this.link = link;
}
public String getDesc(){
    return description;
}
public void setDesc(String  description){
    this.description=description;
} 
}

主程序是这样的-

import java.util.ArrayList;        
public class RssToList {
public static void main(String args[])
{   ArrayList<RssBean> list = new ArrayList<RssBean>(); 
    RssBean bean = new RssBean(null, null, null);
    String rss = "<rss version="+""2.0"">" + 
            "<channel>"+
    "<title>W3Schools Home Page</title>"+
    "<link>http://www.w3schools.com</link>"+
    "<description>Free web building tutorials</description>"+  
             "<item> "+
             "<title>RSS Tutorial</title>"+
             "<link>http://www.w3schools.com/rss</link>"+
              "<description>New RSS tutorial on W3Schools</description>"+
             "</item>"+
             "</channel>" +
              "</rss>";
for(int i=0;i<rss.length();i++)
{
    while(rss.startsWith("<item>") && rss.endsWith("</item>"))
    {
    //  bean.setTitle(rss.substring(rss.indexOf("<title>"),rss.lastIndexOf("</title>")));   
    //  bean.setLink(rss.substring(rss.indexOf("<link>"),rss.lastIndexOf("</link>")));
    //  bean.setDesc(rss.substring(rss.indexOf("<description>"),rss.lastIndexOf("</description>"))); 
        String title =  StringUtils.substringBetween(rss, "<title>", "</title>");
        String link = StringUtils.substringBetween(rss, "<link>", "</link>");
        String description = StringUtils.substringBetween(rss, "<description>", "</description>");
        bean.setTitle(title);
        bean.setLink(link);
        bean.setDesc(description);
        System.out.println(bean);
    } //end if
     //add the bean to list 
    list.add(bean);
}//end for   
}
}

我无法得到结果,看起来我的逻辑完全错误。。。我看到程序终止了。有人能纠正上面的代码并引导我获得结果吗?

如果要解析XML,请使用XML解析器(javax.xml.parsers.DocumentBuilder)。

如果输入已经在字符串中,只需实例化一个org.xml.sax.InputSource作为String的包装,并将其传递给DocumentBuilder#parse(InputSource is)。假设它是有效的XML,那么所有的艰苦工作都完成了,您可以精心挑选所需的数据。

最新更新