gpt4 book ai didi

java - 使用stringbuilder和bufferedreader读取多个链接

转载 作者:行者123 更新时间:2023-12-01 13:47:07 27 4
gpt4 key购买 nike

我正在尝试从下面的代码中的 xml 源 txt 文件中读取多个 rss 链接。我使用 ; 作为分隔符。从调试来看,它似乎将所有链接发送到RSS_LINK,这显然是行不通的。

StringBuilder rsslink = new StringBuilder();
InputStream is = getResources().openRawResource(R.raw.xmlsource);
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = null;

try {
while ((line = br.readLine()) != null)
{
rsslink.append(line) ;
}
String [] arr = rsslink.toString().split(";");
for (int i = 0; i < arr.length; i++)
{
}
}
catch (IOException e)
{
e.printStackTrace();
}
String RSS_LINK = rsslink.toString();

Log.d(Constants.TAG, "Service started");
List<RssItem> rssItems = null;
try
{
XMLRssParser parser = new XMLRssParser();
rssItems = parser.parse(getInputStream(RSS_LINK));
}
catch (XmlPullParserException e)
{
Log.w(e.getMessage(), e);
}
catch (IOException e)
{
Log.w(e.getMessage(), e);
}
Bundle bundle = new Bundle();
bundle.putSerializable(ITEMS, (Serializable) rssItems);
ResultReceiver receiver = intent.getParcelableExtra(RECEIVER);
receiver.send(0, bundle);
}

新代码

protected void onHandleIntent(Intent intent) 
{
StringBuilder rsslink = new StringBuilder();
InputStream is = getResources().openRawResource(R.raw.xmlsource);
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = null;

try {
while ((line = br.readLine()) != null)
{
rsslink.append(line) ;
}
String [] arr = rsslink.toString().split(";");
for (int i = 0; i < arr.length; i++)
{
String RssLink = arr[i];

Log.d(Constants.TAG, "Service started");
List<RssItem> rssItems = null;
try
{
XMLRssParser parser = new XMLRssParser();
rssItems = parser.parse(getInputStream(RssLink));
}
catch (XmlPullParserException e)
{
Log.w(e.getMessage(), e);
}
catch (IOException e)
{
Log.w(e.getMessage(), e);
}
Bundle bundle = new Bundle();
bundle.putSerializable(ITEMS, (Serializable) rssItems);
ResultReceiver receiver = intent.getParcelableExtra(RECEIVER);
receiver.send(0, bundle);
}
}
catch (IOException e)
{
e.printStackTrace();
}

最佳答案

您拆分了 rsslink,但没有使用生成的 arr,而是继续使用 rsslink,其中仍然包含所有链接和 ;组合。

您需要将所有 rss 处理(解析等)放入循环中:

String [] arr = rsslink.toString().split(";"); 
for (int i = 0; i < arr.length; i++)
{
// HERE IS THE PLACE TO HANDLE a single RSS Link. arr contains the single link
}

关于java - 使用stringbuilder和bufferedreader读取多个链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20281100/

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