2009-07-30 7 views
1

私はROMEライブラリでRSS/Atomフィードを解析しようとしています。私はJavaに新しいので、私はその複雑さの多くと調和していません。RSS/AtomをパーズするためのROME API


  1. それが彼らに出くわすようROMEは、自動的に別のフィードを処理するために、そのモジュールを使用しない、または私はそれらを使用するように依頼する必要がありますか?そうであれば、これに関するどんな方向性も。
  2. 正しい「ソース」にはどうすれば到達できますか?私はitem.getSource()を使用しようとしていましたが、それは私に合っています。私は間違ったインターフェイスを使用していると思います。いくらかの方向性は高く評価されるだろう。

ここに私のコレクションのデータがあります。 私は問題を抱えている2つの領域を指摘しました。両方とも、フィードのソース情報を取得することを中心にしています。また、ソースでは、CNN、またはFoxNews、または著者ではなく誰でもが欲しい。 私の読書から判断すると、.getSource()が正しい方法です。

List<String> feedList = theFeeds.getFeeds(); 
List<FeedData> feedOutput = new ArrayList<FeedData>(); 
for (String sites : feedList) { 
    URL feedUrl = new URL(sites); 
    SyndFeedInput input = new SyndFeedInput(); 
    SyndFeed feed = input.build(new XmlReader(feedUrl)); 
    List<SyndEntry> entries = feed.getEntries(); 
    for (SyndEntry item : entries){ 
    String title = item.getTitle();     
    String link = item.getUri(); 
    Date date = item.getPublishedDate(); 
Problem here -->   **  SyndEntry source = item.getSource(); 
    String description; 
    if (item.getDescription()== null){ 
     description = ""; 
    } else { 
     description = item.getDescription().getValue(); 
    } 
    String cleanDescription = description.replaceAll("\\<.*?>","").replaceAll("\\s+", " "); 
    FeedData feedData = new FeedData(); 
    feedData.setTitle(title); 
    feedData.setLink(link); 
And Here -->  **  feedData.setSource(link); 
    feedData.setDate(date); 
    feedData.setDescription(cleanDescription); 
    String preview =createPreview(cleanDescription); 
    feedData.setPreview(preview); 
    feedOutput.add(feedData); 
    // lets print out my pieces. 
    System.out.println("Title: " + title); 
    System.out.println("Date: " + date); 
    System.out.println("Text: " + cleanDescription); 
    System.out.println("Preview: " + preview); 
    System.out.println("*****"); 
    } 
} 
+0

申し訳ありませんが、出力が悪いです。ここで書式設定を取得するにはどうすればよいですか?私はコードを問題なく再発行することができます。 – ButtersB

答えて

1

getSource()は間違いなく間違っている - それはSyndFeedは、問題のエントリが属する戻ります。おそらくあなたが望むのはgetContributors()ですか?

モジュールに関しては、自動的に選択する必要があります。 here

+0

rssの実際のソースを取得するにはどうすればよいですか。私にYAHOO、CNN、ESPNなど何かを与えるyahooのRSSフィードを言う?私はその部分を理解することはできません。 – ButtersB

+0

あなたは何を意味するのか分かりません。 'getAuthors()'/'getContributors()'はあなたが望むものを与えていないのですか?実際のRSSに探しているフィールドはどこですか? – ChssPly76

+0

getAuthorsはソースではなく、作者を取得します。 CNN。それは私にジャーナリストの名前、またはfoxnews @ foxnewsonlineを与えます。 私は親フィードを反復して取得できると思います。 – ButtersB

0

APIを使用せずに正規表現をURLから試してみるにはどうしたらよいですか?

とにかく私はRSSでこのオプションは、このレベルでは、実際に使用可能な場合はアイデアを得るためにRSS標準化された形式自体に対してチェックして、上向きにその実装をトレースしてみてください...

、私が最初に考えました2.0では、私はソース要素を見つけましたが、スペックの以前のバージョンには存在しません - 私たちのための良いニュース!

は、[その値が由来するアイテムがどこから来たことRSSチャンネルの名前である1

の任意のサブ要素です。これには、ソースのXML化にリンクする1つの必須属性urlがあります。

関連する問題