json2xml.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.lfJson2Xml = void 0;
  4. /**
  5. * This work is licensed under Creative Commons GNU LGPL License.
  6. * License:
  7. * Version: 0.9
  8. * Author: Stefan Goessner/2006
  9. * Web: http://goessner.net/
  10. */
  11. function addIndSpace(ind, deep) {
  12. for (var i = 0; i < deep; i++) {
  13. ind += ' ';
  14. }
  15. return ind;
  16. }
  17. function toXml(v, name, ind, deep) {
  18. var xml = "";
  19. if (v instanceof Array) {
  20. for (var i = 0, n = v.length; i < n; i++) {
  21. xml += addIndSpace(ind, deep) + toXml(v[i], name, ind, deep + 1);
  22. }
  23. }
  24. else if (typeof (v) == "object") {
  25. var hasChild = false;
  26. xml += addIndSpace(ind, deep) + "<" + name;
  27. for (var m in v) {
  28. if (m.charAt(0) == "-")
  29. xml += " " + m.substr(1) + "=\"" + v[m].toString() + "\"";
  30. else
  31. hasChild = true;
  32. }
  33. xml += hasChild ? ">" : " />";
  34. if (hasChild) {
  35. for (var m in v) {
  36. if (m == "#text")
  37. xml += v[m];
  38. else if (m == "#cdata")
  39. xml += "<![CDATA[" + v[m] + "]]>";
  40. else if (m.charAt(0) != "-")
  41. xml += toXml(v[m], m, ind, deep + 1);
  42. }
  43. xml += addIndSpace(ind, deep) + "</" + name + ">";
  44. }
  45. else {
  46. // xml += addIndSpace(ind, deep);
  47. }
  48. }
  49. else {
  50. xml += addIndSpace(ind, deep) + "<" + name + ">" + v.toString() + "</" + name + ">";
  51. }
  52. return xml;
  53. }
  54. ;
  55. function lfJson2Xml(o) {
  56. var xmlStr = "";
  57. for (var m in o) {
  58. xmlStr += toXml(o[m], m, "\t\n", 0);
  59. }
  60. return xmlStr;
  61. }
  62. exports.lfJson2Xml = lfJson2Xml;