2011-08-14 11 views
0

XMLデータの解析に関する問題が発生しました。プログラムを3つの異なるJavaファイルに分割しました。各ファイルにはクラスが含まれています。それらの1つはrssparser.javaです。このファイルにはiterateRSSFeed(String URL)という関数があり、この関数は解析されたdescriptionタグを含む文字列を返します。私の主な方法がある私のmain.javaファイルでは、私はこの方法で、このiterateRSSFeed関数を呼び出す:私のXMLパーサは、複数の文字列ではなく、1つの文字列しか返さないのはなぜですか?

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

そして、私は、JLabelのにこの方法をこの文字列を追加する予定です:

JLabel news = new JLabel(description); 

明らかに素晴らしい作品ですが、私のプログラムは動いています。しかし、私のXMLファイルには、より多くの記述タグがあります.JLabelには、解析されたdescriptionタグが1つしかありません。私はiterateRSSFeed関数のreturn文がfor-loopで "pack"されていると言います。私の頭の中ではdescriptionタグをすべて返すべきです。しかし、いいえ。

私の答えに解決策を提供するには、何かがクリアされていないかソースコードが表示されているかどうかを尋ねてください。前もって感謝します! :)

+0

return文がfor-loopで "packed"とはどういう意味ですか? String配列またはArrayList を返すことを検討しましたか? –

+0

さまざまなオープンソースのRSSライブラリがありますか? Curn、ローマ、など? – bmargulies

+1

ちょっとしたヒント:時間があるときは、[あなたの古い質問](http://stackoverflow.com/users/835585/opous)に戻り、それらの間に良い答えがあるかどうかを確認してください。はいの場合は、それぞれに最適なものを受け入れます。いいえの場合は、回答を可能にするために質問を編集する必要があります。 –

答えて

3

Javaがreturnステートメントを実行すると、メソッドを終了し、ループを続行しません。

メソッドから複数の値を返す場合は、メソッドを複数のオブジェクトにまとめてグループ化する必要があります。通常は戻り値としてList<String>を使用します。

ループがリストを満たし、ループの後のreturn文がリスト全体を一度に返すことができます。

複数の文字列ではなく大きな文字列を1つにまとめたい場合は、それらを1つにマージする必要があります。 リストの.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
+0

うん、まさに! :) –

+0

あなたの答えPauloに感謝します。しかし、リストをJPanelに追加するにはどうすればよいですか?私の関数がリストを返すと仮定し、この返されたリストを格納するためにメインメソッドにリストを設定しましたか? –

+0

これはあなたが実際に望むものによって決まります。リスト内の文字列を1つの文字列にマージしたり、パネルのリスト(RSSリーダーには意味をなされるかもしれません)などを使用できます。 –

関連する問題