This blueprint is supposed to be connected upstreams to an ajaxwrapper which feed data from the Upcoming.org events site API, so it is kind of specialized. However it is a good template for when you need to do some similar scraping.
BLUEPRINT(
"~01E0DFBB311ED2450cA5AF88A762A653BA",
[
["xml_json_in", "onJsonXml", 10]
],
[
"collection_out"
],
function (Class)
{
Class.prototype.onJsonXml = function(msg)
{
var coll = [];
var n, event, events;
try {
events = msg.children;
n = events.length;
} catch (ex) {
this.error(ex, "malformed JSON RSS output");
return;
/*****************************************************************/
}
for (i = 0; i < n; i++) {
event = events[i];
if (event.attributes) {
coll.push({name:event.attributes["name"],
text_content:event.attributes["description"],
lat:parseFloat(event.attributes["latitude"]),
lon:parseFloat(event.attributes["longitude"]),
date:[new Date(event.attributes["start_date"].replace(/-/g, "/") + " " + event.attributes["start_time"]),
new Date(event.attributes["end_date"].replace(/-/g, "/") + " " + event.attributes["end_time"])]});
}
}
this.postMessage("collection_out", coll);
};
}, "Upcoming.org XML JSON to Collection");