Guest User

Untitled

a guest
Jul 16th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. const { xml2json, json2xml } = require('xml-js');
  2. const { readFileSync, writeFileSync } = require('fs');
  3.  
  4. const postIds = require('./postIds').map(id => Number(id));
  5. const xml = JSON.parse(xml2json(readFileSync('./export.xml')));
  6.  
  7. const comments = xml.elements.filter(element => element.type === 'comment');
  8. const rss = xml.elements.find(element => element.name === 'rss');
  9. const channel = rss.elements.find(element => element.name === 'channel');
  10. const nonItems = channel.elements.filter(element => element.name !== 'item');
  11.  
  12. const matchingItems = channel.elements.filter(element => {
  13. return element.name === 'item' && element.elements.some(element => {
  14. return element.elements && element.elements.some(element => {
  15. return postIds.includes(Number(element.text));
  16. });
  17. });
  18. });
  19.  
  20. const matched = {
  21. ...xml,
  22. elements: [
  23. ...comments,
  24. {
  25. ...rss,
  26. elements: [
  27. {
  28. ...channel,
  29. elements: [
  30. ...nonItems,
  31. ...matchingItems
  32. ]
  33. }
  34. ]
  35. }
  36. ]
  37. }
  38.  
  39. writeFileSync('./matched.xml', json2xml(matched, { spaces: 2 }));
Add Comment
Please, Sign In to add comment