CSFeedKit
An RSS feed generator and parser for macOS. Swift and Objective-C compatible.
Installation
Install using CocoaPods by adding this line to your Podfile:
use_frameworks!
target 'MyApp' do
pod 'CSFeedKit'
end
Creating an RSS Feed
The example below creates an RSS feed and prints the resulting XML string.
// Create a channel
let channel = CSRSSFeedChannel.init(title: "My RSS feed", link: "http://my.rss.feed/", description: "My first CSFeedKit RSS feed")
channel.category = "Examples"
// Add two items to the channel
var items = Array<CSRSSFeedItem>()
items.append(CSRSSFeedItem(title: "Item 1" , link: "http://my.rss.feed/item1", description: "The coolest item so far."))
items.append(CSRSSFeedItem(title: "Item 2" , link: "http://my.rss.feed/item2", description: "An even cooler item."))
channel.items = items
// Create the feed
let feed = CSRSSFeed()
// Add the channel to the feed
feed.channels = [channel]
// Output the XML
print(feed.xmlElement().xmlString(options: .nodePrettyPrint))
Parsing an RSS feed
The following prints out the titles and URLs of the items in the Hacker News RSS feed.
// Get the XML string (don't do it like this in the real-world ;) )
let xmlString = try String(contentsOf: URL(string: "https://news.ycombinator.com/rss")!)
// Init the feed
let feed = try CSRSSFeed(xmlString: xmlString)
// Print channel info
let channel = feed.channels[0]
print("channel: \(channel.title) - \(channel.pubDate ?? Date.distantPast)")
// Print the items
for item in channel.items {
print(" * \(item.pubDate ?? Date.distantPast) - \(item.title) (\(item.link))")
}
What’s Next
Run the built-in example: https://github.com/thecatalinstan/CSFeedKit/blob/master/CSFeedKitExamples/CSFeedKitExamples/main.swift
Check out the complete documentation on CocoaDocs.