gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 14:10:08 25 4
gpt4 key购买 nike

我的代码中有 RSS 字符串,该字符串是从数据库中提取的。我需要解析每个值并将其存储在 Beans 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 是)。假设它是有效的 XML,所有艰苦的工作都已完成,您可以挑选所需的数据。

关于java - 无法解析字符串格式的rss内容并将其存储在bean的arrayList中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18581247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com