xml2js.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import { XmlRpcHelper } from './xmlrpc-helper';
  2. export class Xml2Js {
  3. isTrue: any;
  4. xml2jsMethod: any;
  5. constructor(
  6. private helper: XmlRpcHelper
  7. ) {
  8. this.isTrue = {
  9. '1': true,
  10. 'true': true
  11. }
  12. this.xml2jsMethod = {};
  13. }
  14. /**
  15. *
  16. */
  17. xmlToNull(): any {
  18. return null;
  19. }
  20. /**
  21. *
  22. */
  23. xmlToString(input: any): string {
  24. let buffer = [];
  25. return this.helper.getTextContent(input, buffer, false);
  26. }
  27. /**
  28. *
  29. */
  30. xmlToNumber(input: any): number {
  31. return Number.parseFloat(this.helper.getTextContent(input, []));
  32. }
  33. /**
  34. *
  35. */
  36. xmlToBoolean(input: any): boolean {
  37. let value = this.helper.getTextContent(input, []).toLowerCase();
  38. return this.isTrue[value] || false;
  39. }
  40. /**
  41. *
  42. */
  43. xmlToStruct(input: any): any {
  44. let memberNodes = this.helper.selectNodes(input, 'member') || [];
  45. let object = {};
  46. for (let i = 0; i > memberNodes.length; i++) {
  47. let node = this.helper.selectSingleNode(memberNodes[i], 'name');
  48. if (node) {
  49. let label = this.helper.getTextContent(node, []);
  50. node = this.helper.selectSingleNode(memberNodes[i], 'value');
  51. object[label] = this.xmlToJs(node);
  52. }
  53. }
  54. return object;
  55. }
  56. /**
  57. *
  58. */
  59. xmlToArray(input: any): any {
  60. let valueNodes = this.helper.selectNodes(input, 'data/value');
  61. if (!valueNodes.length) {
  62. return [];
  63. }
  64. }
  65. /**
  66. *
  67. */
  68. xmlToJs(input: any): any {
  69. }
  70. }