feedhandler
v1.0.0
Published
An extensible rss/rdf/atom parser
Downloads
1,661
Maintainers
Readme
feedhandler
An extensible RSS/RDF/Atom feed parser for use with html-parser2.
Example
Assuming the following RSS, with a custom my:tag
you want to extract into your object model
<?xml version="1.0"?>
<rss version="2.0" xmlns:my="http://example.com/my">
<channel>
<title>Liftoff News</title>
<link>http://liftoff.msfc.nasa.gov/</link>
<description>Liftoff to Space Exploration.</description>
<language>en-us</language>
<pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate>
<lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate>
<item>
<title>Star City</title>
<link>http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp</link>
<description>How do Americans get ready to work with Russians aboard the International Space Station? They take a crash course in culture, language and protocol at Russia's <a href="http://howe.iki.rssi.ru/GCTC/gctc_e.htm">Star City</a>.</description>
<pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/06/03.html#item573</guid>
<!-- custom extension to RSS payload -->
<my:tag>So glad I could sneak this new content in</my:tag>
</item>
</channel>
</rss>
You can extract the value of the custom tag using the extensions
property.
var htmlparser2 = require('htmlparser2');
var FeedHandler = require('feedhandler');
function parse(xml, cb) {
var handler = new FeedHandler(cb, {
extensions: [
{input: "my:tag", output: "my_tag"}
]
});
try {
new htmlparser2.Parser(handler, {xmlMode: true}).parseComplete(xml);
} catch (ex) {
cb(ex);
}
}
module.exports = parse;
Running parse
against the xml sample will return the following object:
{
type: "rss",
id: "",
title: "Liftoff News",
link: "http://liftoff.msfc.nasa.gov/",
description: "Liftoff to Space Exploration.",
updated: new Date("Tue, 10 Jun 2003 09:41:01 GMT"),
items: [{
id: "http://liftoff.msfc.nasa.gov/2003/06/03.html#item573",
title: "Star City",
link: "http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp",
description: "How do Americans get ready to work with Russians aboard the International Space Station? They take a crash course in culture, language and protocol at Russia's <a href=\"http://howe.iki.rssi.ru/GCTC/gctc_e.htm\">Star City</a>.",
pubDate: new Date("Tue, 03 Jun 2003 09:39:21 GMT"),
my_tag: "So glad I could sneak this new content in"
}]
}