Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

xmlHelper.js 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /*
  2. Small helper class to read/write from/to xml file.
  3. */
  4. var fs = require('fs');
  5. var xml2js = require('xml2js');
  6. module.exports = {
  7. readXmlAsJson: readXmlAsJson,
  8. writeJsonAsXml: writeJsonAsXml
  9. };
  10. /**
  11. * Read data from the xml file as JSON object.
  12. *
  13. * @param {String} filePath - absolute path to xml file
  14. * @return {Object} JSON object with the contents of the xml file
  15. */
  16. function readXmlAsJson(filePath) {
  17. var xmlData;
  18. var xmlParser;
  19. var parsedData;
  20. try {
  21. xmlData = fs.readFileSync(filePath, 'utf8');
  22. xmlParser = new xml2js.Parser();
  23. xmlParser.parseString(xmlData, function(err, data) {
  24. if (data) {
  25. parsedData = data;
  26. }
  27. });
  28. } catch (err) {}
  29. return parsedData;
  30. }
  31. /**
  32. * Write JSON object as xml into the specified file.
  33. *
  34. * @param {Object} jsData - JSON object to write
  35. * @param {String} filePath - path to the xml file where data should be saved
  36. * @return {boolean} true - if data saved to file; false - otherwise
  37. */
  38. function writeJsonAsXml(jsData, filePath, options) {
  39. var xmlBuilder = new xml2js.Builder(options);
  40. var changedXmlData = xmlBuilder.buildObject(jsData);
  41. var isSaved = true;
  42. try {
  43. fs.writeFileSync(filePath, changedXmlData, 'utf8');
  44. } catch (err) {
  45. console.log(err);
  46. isSaved = false;
  47. }
  48. return isSaved;
  49. }