1

おかしな話ですが、時系列順に読みたいブログに出会ったことはありませんか?そして、そのブログは古く、数百の投稿がある可能性があります。このフィードを googlereader などのフィード リーダーに追加すると、最新のフィードが一番上に表示され、さらに下にスクロールすると、古い投稿が表示されます。最初から読みたいと思ったら、これはイライラするかもしれません。これを行うリーダーはいますか?または、これをペット プロジェクトとして (できれば C# で) やりたいのですが、どのようにすればよいですか? また、RSS フィードで使用できる .NET ライブラリはありますか? RSS フィードのプログラミングを行ったことはありません。

編集これに技術的な制限があるかどうか知りたいです。これは、私が遭遇した興味深い問題の 1 つであり、プログラムで対処できると考えていました。

4

5 に答える 5

2

Google リーダーでは、フィードを読んでいるとき、「フィード設定...」メニューがあり、「最新順」、「古い順」のオプションがあります。

フォルダーには、[フォルダー設定...] メニューの下に同じオプションがあります。

プログラミングは必要ありません。

于 2008-09-25T21:53:28.813 に答える
2

これでお困りかと思います。多くの RSS フィードは最新の 10 件程度の投稿しか保持していないため、ブログの開始以降の古いデータをフィードから提供する方法はありません。

于 2008-09-25T21:54:13.007 に答える
2

これを行うために独自の C# アプリケーションを作成することに決めた場合、現在のバージョンの .NET Framework では非常に簡単です。

System.ServiceModel.Syndication名前空間を探します。これには、RSS および Atom フィードに関連するクラスがあります。最近、これらのクラスを使用してデータベースからフィードを生成し、ジオコードをフィード アイテムに追加するコードをいくつか書きました。フィード内の項目の順序を逆にする必要があるという同じ問題がありました。これは、データベース クエリがユーザーに表示したい順序と逆の順序で項目を返したためです。

私が行ったことは、フィードをディスクに書き込む直前まで、フィードのSyndicationItemオブジェクトのリストを独自のデータ構造に保持することだけでした。List<SyndicationItem>次に、次のようにします。

private SyndicationFeed m_feed;
private List<SyndicationItem> m_items;

...snip...

m_items.Reverse();
m_feed.Items = m_items;
于 2008-10-02T03:35:30.240 に答える
1

Google リーダーでは、フォルダー (フィード) 内のアイテムを、新しいものから古いものへ、または古いものから新しいものへと表示できます。これを行うには、フィードを選択し、[フィード設定] ドロップダウンを選択して、[古い順に並べ替え] を選択します。Google Reader がどこまでさかのぼるかはわかりませんが、最初にフィードの監視を開始してからずっとさかのぼる可能性があります。

于 2008-09-25T21:57:38.880 に答える
0

これはどの言語でもかなり簡単です...フィード xml を DOM 構造に読み込むだけです (C# を含むほぼすべての言語には DomDocument クラスがあります)。

次に、項目ノードを逆の順序で単純にループできるはずです...

参照: http://msdn.microsoft.com/en-us/library/ms756177(VS.85).aspx

他の人が言ったように、RSS フィードによっては、限られた量のアイテムしか取得できない場合があります。

于 2008-09-25T21:55:02.990 に答える