gpt4 book ai didi

java - 为什么我的 XML 解析器只返回一个字符串,而不是多个字符串?

转载 作者:行者123 更新时间:2023-12-02 00:38:28 26 4
gpt4 key购买 nike

我在解析 XML 数据时遇到问题。我已将程序分为 3 个不同的 java 文件,每个文件包含一个类。其中之一是 rssparser.java。该文件包含一个名为 iterateRSSFeed(String URL) 的函数,该函数返回一个包含解析后的描述标签的字符串。在我的主要方法所在的 main.java 文件中,我这样调用此 iterateRSSFeed 函数:

rssparser r = new rssparser();
String description = r.iterateRSSFeed();

然后我计划将此字符串添加到 JLabel,如下所示:

JLabel news = new JLabel(description);

这显然效果很好,我的程序运行了。但是我的 XML 文件中有更多描述标签,JLabel 仅包含一 (1) 个已解析的描述标签。我应该说,iterateRSSFeed 函数中的 return 语句被“打包”在一个 for 循环中,在我看来,它应该返回所有描述标签。但没有。

请询问是否有不清楚的地方,或者显示源代码是为我的答案提供解决方案的更好方法。提前致谢! :)

最佳答案

当Java执行return时语句,它将离开该方法,并且不再继续运行循环。

如果你想从一个方法返回多个值,你必须将它们放在某个对象中,将它们分组在一起。通常人们会使用 List<String>作为返回类型。

然后你的循环将填充列表,并且 return 语句(循环之后)可以立即返回整个列表。

如果您想要一个大字符串而不是多个字符串,则必须将它们合并为一个。最简单的方法是简单地使用 .toString()列表中的方法,这将给出(如果您使用默认列表实现)类似 [element1, element2, element3] 的内容.

如果您不喜欢[,] ,您可以简单地将它们连接起来:

List<String> list = r.iterateRSSFeed();
StringBuilder b = new StringBuilder();
for(String s : list) {
b.append(s);
}
String description = b.toString();

这将给出 element1element2element3 .

由于 Java 的 JLabel 有一些基本的 HTML 支持,您还可以使用它来将列表格式化为列表:

List<String> list = r.iterateRSSFeed();
StringBuilder b = new StringBuilder();
b.append("<html><ul>");
for(String s : list) {
b.append("<li>");
b.append(s);
b.append("</li>");
}
b.append("</ul>");
String description = b.toString();

结果将是 <html><ul><li>element1</li><li>element2</li><li>element3</li></ul> ,它将被 JLabel 格式化为如下所示:

  • 元素1
  • 元素2
  • 元素3

关于java - 为什么我的 XML 解析器只返回一个字符串,而不是多个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7057961/

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