Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const { xml2json, json2xml } = require('xml-js');
- const { readFileSync, writeFileSync } = require('fs');
- const postIds = require('./postIds').map(id => Number(id));
- const xml = JSON.parse(xml2json(readFileSync('./export.xml')));
- const comments = xml.elements.filter(element => element.type === 'comment');
- const rss = xml.elements.find(element => element.name === 'rss');
- const channel = rss.elements.find(element => element.name === 'channel');
- const nonItems = channel.elements.filter(element => element.name !== 'item');
- const matchingItems = channel.elements.filter(element => {
- return element.name === 'item' && element.elements.some(element => {
- return element.elements && element.elements.some(element => {
- return postIds.includes(Number(element.text));
- });
- });
- });
- const matched = {
- ...xml,
- elements: [
- ...comments,
- {
- ...rss,
- elements: [
- {
- ...channel,
- elements: [
- ...nonItems,
- ...matchingItems
- ]
- }
- ]
- }
- ]
- }
- writeFileSync('./matched.xml', json2xml(matched, { spaces: 2 }));
Add Comment
Please, Sign In to add comment