Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
53 lines (36 sloc) 1.98 KB
=== Introduction ===
FeedParser is an NSXMLParser-based RSS/Atom feed parser for Cocoa. It is
intended to parse well-formed RSS and Atom feeds on both the desktop and the
=== Usage ===
The simplest way to use FeedParser is to simply add the FeedParser directory
to your project. FeedParser also includes a static library target if you
prefer to include it that way.
=== Design Goals ===
FeedParser was designed to parse valid RSS and Atom feeds, including support
for extensions outside of the RSS or Atom namespaces. All parsed feeds MUST be
well-formed, but the parser may or may not enforce validity.
=== Current State ===
As of this writing, FeedParser can parse a full valid RSS 2.0 feed, though it
intentionally skips elements that I did not consider useful. The parser may be
extended later to expose the values of those elements. FeedParser has only a
limited understanding of Atom feeds. It can understand a handful of Atom
elements embedded within an RSS feed, but it cannot understand a complete Atom
feed. Full understanding of Atom feeds is one of the future goals of this
FeedParser requires that the entire feed must be a well-formed XML document,
but it does not do any validity checking of individual elements.
=== Future Development ===
The goals for future development of FeedParser are the following:
* Fully support Atom feeds
* Be as lenient as possible. To this extent, parsing non-well-formed documents
should be investigated. NSXMLParser is documented as aborting parsing upon
encountering an error, but in practice it appears that, at least on Mac OS X
10.5, it actually can recover from errors. However, at the current time
FeedParser explicitly aborts the parser when an error is encountered
* Support the more common RSS/Atom extensions
* Better error reporting
=== Naming Issues ===
The name FeedParser conflicts with RSS/Atom parsers for other languages. A new
name unique name should be chosen that is available on Google Code for bug
reporting purposes.