2017-11-03 2 views
0

Ich versuche, mehrere RSS-Feeds in einen zusammenzuführen und in JSON zu konvertieren. So führen Sie die RSS-Feeds ich dieses Paket verwendet: rss-combinerWie kann ich mehrere RSS-Feeds abrufen und sie in einem Feed zusammenführen und dann den zusammengeführten Feed in JSON-Daten konvertieren? (JavaScript)

Hier ist der Code i verwendet fusionieren die RSS-Feeds funktioniert es:

var RSSCombiner = require('rss-combiner'); 

var feedConfig = { 
    title: 'Tech news from Guardian and BBC', 
    size: 20, 
    feeds: [ 
    'http://feeds.bbci.co.uk/news/technology/rss.xml', 
    'https://www.theguardian.com/uk/technology/rss' 
    ], 
    pubDate: new Date() 
}; 

RSSCombiner(feedConfig) 
.then(function (combinedFeed) { 
    xml = combinedFeed.xml(); 
    console.log(xml); 
}); 

Dann einen Feed zu konvertieren, um JSON ich dieses Paket verwendet: rss-to-json mit dieser Code und es funktioniert:

var Feed = require('rss-to-json'); 

Feed.load('https://codek.tv/feed/', function(err, rss){ 
    console.log(rss); 
}); 

Das Problem ist, wenn ich versuche, das fusionierte Feed zu JSON zu konvertieren, ich habe keine Ergebnisse mit diesem Code erhalten:

var RSSCombiner = require('rss-combiner'); 
var Feed = require('rss-to-json'); 

var feedConfig = { 
    title: 'Tech news from Guardian and BBC', 
    size: 20, 
    feeds: [ 
    'http://feeds.bbci.co.uk/news/technology/rss.xml', 
    'https://www.theguardian.com/uk/technology/rss' 
    ], 
    pubDate: new Date() 
}; 

// combine feeds 
RSSCombiner(feedConfig) 
.then(function (combinedFeed) { 
    var xml = combinedFeed.xml(); 

    // convert combined feed to json 
    Feed.load(xml, function(err, rss){ 
    console.log(rss); 
    }); 
}); 
+0

Versuchen Sie, 'err' zu protokollieren. – str

+0

Noch bekomme ich keine Antwort. – Harry

Antwort

0

Ich denke, rss-to-json fragt nach einer URL; Sie übergeben das XML-Ergebnis. Warum benutzen Sie nicht einfach xml2js, nachdem Sie den RSS kombiniert haben?

const RSSCombiner = require('rss-combiner'); 
const xml2js = require('xml2js'); 

const feedConfig = { 
    title: 'Tech news from Guardian and BBC', 
    size: 20, 
    feeds: [ 
    'http://feeds.bbci.co.uk/news/technology/rss.xml', 
    'https://www.theguardian.com/uk/technology/rss', 
    ], 
    pubDate: new Date(), 
}; 

RSSCombiner(feedConfig) 
    .then((combinedFeed) => { 
    const xml = combinedFeed.xml(); 
    const parser = xml2js.Parser(); 

    parser.parseString(xml, (err, result) => { 
     console.log(result); 
    }); 
    }); 
+1

Das hat funktioniert! und ich musste dies tun, um alle Daten anzuzeigen: console.log (JSON.stringify (result)); – Harry

+0

@HarryBanda ah ja, natürlich gibt es Objekte. – dork

Verwandte Themen