https://github.com/robthree/simplefeedreader
Easy to use, simple, Syndication feed reader
https://github.com/robthree/simplefeedreader
atom-feed-parser c-sharp dotnet rss-feed-parser syndication
Last synced: 12 months ago
JSON representation
Easy to use, simple, Syndication feed reader
- Host: GitHub
- URL: https://github.com/robthree/simplefeedreader
- Owner: RobThree
- License: mit
- Created: 2014-04-16T14:28:26.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2025-03-07T21:44:24.000Z (about 1 year ago)
- Last Synced: 2025-04-16T03:55:39.145Z (12 months ago)
- Topics: atom-feed-parser, c-sharp, dotnet, rss-feed-parser, syndication
- Language: C#
- Size: 1.77 MB
- Stars: 33
- Watchers: 7
- Forks: 12
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
#  SimpleFeedReader
Easy to use, simple, Syndication feed reader (Atom / RSS). Available as [Nuget Package](https://www.nuget.org/packages/SimpleFeedReader/).
## Usage
```c#
var reader = new FeedReader();
var items = await reader.RetrieveFeedAsync("http://www.nytimes.com/services/xml/rss/nyt/International.xml");
foreach (var i in items)
Console.WriteLine($"{i.Date.ToString("g")}\t{i.Title}");
````
Output:
```
4/16/2014 4:27 AM Growth Rose 7.4% in First Quarter, China Reports
4/16/2014 12:29 AM Milan Court Gives Berlusconi a Year of Community Service
4/15/2014 12:34 PM Desalination Plant Said to Be Planned for Thirsty Beijing
4/15/2014 7:24 PM After Prank by Dutch Girl on Twitter, Real Trouble
4/15/2014 4:33 PM Afghanistan Says NATO Airstrike in East Killed Civilians
4/16/2014 12:49 AM Iran Escalates Dispute Over U.N. Envoy
...
````
## Notes
By default the `FeedReader` suppresses exceptions (since feeds tend to go down occasionally, they contain invalid XML from time-to-time and have all other sorts of problems). However, you can tell the `FeedReader` to throw exceptions simply by setting the `throwOnError` argument of the `FeedReader`'s constructor to true.
The `FeedReader` also accepts an optional `FeedNormalizer` (needs to implement the `IFeedItemNormalizer` interface). This "normalizer" can transform or otherwise affect the way [`SyndicationItem`](http://msdn.microsoft.com/en-us/library/system.servicemodel.syndication.syndicationitem.aspx)s are transformed into `FeedItem`s. The `FeedItem` is the basic object retrieved from feeds and, for simplicity, contains only a few simple properties and methods. It has `Title`, `Summary`, `Content`, `Uri` , `PublishDate`, `LastUpdatedDate`, `Images` and `Categories` properties and that's about it. The default `DefaultFeedItemNormalizer` strips and decodes any HTML in the `Title`, `Summary`, `Content` to (try to) reliably return plain text only. The `Date` property will be populated with whatever the `SyndicationItem`'s latest date is: the `PublishDate` or `LastUpdatedTime`.
You can implement your own `IFeedItemNormalizer` (see the [UnitTest project](https://github.com/RobThree/SimpleFeedReader/tree/master/SimpleFeedReaderTests) for examples) to handle 'normalization' differently to your desire. The `FeedReader` has some convienience methods like `RetrieveFeedsAsync()` that retrieve more than one feed.
The project is aimed at easy, don't-make-me-think, retrieval of syndication feeds' entries. It is by no means intended as full-fledged feedreader. It is, however, easily extensible for your purposes (again, see the [UnitTest project](https://github.com/RobThree/SimpleFeedReader/tree/master/SimpleFeedReaderTests) for examples; the `ExtendedFeedItem` and `ExtendedFeedItemNormalizer` are nice concrete examples of this idea).
 [](https://www.nuget.org/packages/SimpleFeedReader/)