luisandia
3/14/2019 - 3:29 PM

example about convert xml to json

example about convert xml to json

var xml = `<?xml version="1.0" encoding="UTF-8" ?>
<root>
  <fechaEmision>2019/03/03</fechaEmision>
  <codigoBaseTipoDocumento>01</codigoBaseTipoDocumento>
  <codigoBaseTipoOperacion>0101</codigoBaseTipoOperacion>
  <codigoBaseTipoMoneda>PEN</codigoBaseTipoMoneda>
  <notaGeneral></notaGeneral>
  <fechaVencimiento>2019-03-14</fechaVencimiento>
  <codigoBaseTipoDocumentoCliente>6</codigoBaseTipoDocumentoCliente>
  <numeroDocumentoCliente>10465020623</numeroDocumentoCliente>
  <razonSocialCliente>luis</razonSocialCliente>
  <direccionCliente></direccionCliente>
  <codigoBaseUbigeoCliente></codigoBaseUbigeoCliente>
  <codigoBasePaisCliente></codigoBasePaisCliente>
  <correoElectronicoCliente></correoElectronicoCliente>
  <detalle>
    <numeroOrden>1</numeroOrden>
    <descripcion>item</descripcion>
    <codigoBaseUnidadMedida>NIU</codigoBaseUnidadMedida>
    <codigoBaseMoneda>PEN</codigoBaseMoneda>
    <cantidad>1</cantidad>
    <valorUnitario>8.47</valorUnitario>
    <precioVentaUnitario>9.990</precioVentaUnitario>
    <valorVenta>8.47</valorVenta>
    <precioTotalVenta>9.99</precioTotalVenta>
    <porcentajeAfectacionIGV>18</porcentajeAfectacionIGV>
    <montoAfectacionIGV>1.52</montoAfectacionIGV>
    <codigoBaseAfectacion>10</codigoBaseAfectacion>
    <montoBaseIGV>8.47</montoBaseIGV>
    <codigoBaseTributoIGV>1000</codigoBaseTributoIGV>
    <nombreTributoIGV>IGV</nombreTributoIGV>
    <codigoTipoTributoIGV>VAT</codigoTipoTributoIGV>
    <valorReferencialUnitario>0.00</valorReferencialUnitario>
    <valorTipoCambio>1</valorTipoCambio>
    <comentario></comentario>
    <sumaTotalTributos>1.52</sumaTotalTributos>
    <codigoBaseDescuento>00</codigoBaseDescuento>
    <multiplicadorDescuento>0.00000</multiplicadorDescuento>
    <montoDescuento>0.00</montoDescuento>
    <montoBaseDescuento>8.47</montoBaseDescuento>
    <codigoBaseCargo>50</codigoBaseCargo>
    <multiplicadorCargo>0.00000</multiplicadorCargo>
    <montoCargo>0.00</montoCargo>
    <montoBaseCargo>8.47</montoBaseCargo>
    <codigoBaseTributoISC></codigoBaseTributoISC>
    <montoBaseISC>0.00</montoBaseISC>
    <montoAfectacionISC>0.00</montoAfectacionISC>
    <porcentajeAfectacionISC>0</porcentajeAfectacionISC>
    <codigoBaseTipoSistemaISC>01</codigoBaseTipoSistemaISC>
    <nombreTributoISC></nombreTributoISC>
    <codigoTipoTributoISC></codigoTipoTributoISC>
    <codigoBaseTributoOtro></codigoBaseTributoOtro>
    <montoBaseOtro>8.47</montoBaseOtro>
    <montoAfectacionOtro>0.00</montoAfectacionOtro>
    <porcentajeAfectacionOtro>0</porcentajeAfectacionOtro>
    <nombreTributoOtro></nombreTributoOtro>
    <codigoTipoTributoOtro></codigoTipoTributoOtro>
    <codigoProductoServicio>C01</codigoProductoServicio>
    <codigoBaseProductoSUNAT></codigoBaseProductoSUNAT>
    <nombrePropiedad></nombrePropiedad>
    <codigoBasePropiedad></codigoBasePropiedad>
    <valorPropiedad></valorPropiedad>
    <codigoBaseBienDetraccion></codigoBaseBienDetraccion>
    <fechaInicio></fechaInicio>
    <horaInicio></horaInicio>
    <fechaFin></fechaFin>
    <numeroDias>0</numeroDias>
    <precioSugerido>0</precioSugerido>
    <inventariado>N</inventariado>
    <itsfree>false</itsfree>
  </detalle>
  <documentoLeyenda>
    <codigoBaseLeyenda></codigoBaseLeyenda>
    <descripcion></descripcion>
  </documentoLeyenda>
  <descuento>0.00</descuento>
  <gravada>0.00</gravada>
  <inafecta>0.00</inafecta>
  <exonerada>0.00</exonerada>
  <igv>0.00</igv>
  <gratuita>0.00</gratuita>
  <venta>0.00</venta>
  <montoTotalImpuestos>1.52</montoTotalImpuestos>
  <totalValorVenta>8.47</totalValorVenta>
  <totalPrecioVenta>9.99</totalPrecioVenta>
  <totalDescuentos>0.00</totalDescuentos>
  <totalOtrosCargos>0.00</totalOtrosCargos>
  <importeTotalVenta>9.99</importeTotalVenta>
  <sumaTotalAnticipos>0.00</sumaTotalAnticipos>
  <direccionEntrega></direccionEntrega>
  <codigoBaseUbigeoEntrega></codigoBaseUbigeoEntrega>
  <codigoBasePaisEntrega></codigoBasePaisEntrega>
  <cuentaBancoNacionDetraccion></cuentaBancoNacionDetraccion>
  <codigoBaseBienDetraccion></codigoBaseBienDetraccion>
  <porcentajeDetraccion>0</porcentajeDetraccion>
  <montoDetraccion>0.00</montoDetraccion>
  <importePercepcion>0.00</importePercepcion>
  <importePercepcionSoles>0.00</importePercepcionSoles>
  <totalConImportacionSoles>0.00</totalConImportacionSoles>
  <codigoSerieDocumento>F001</codigoSerieDocumento>
  <numero>00000002</numero>
  <RUCFirmante>20603353901</RUCFirmante>
  <razonSocialFirmante>AKAR GLOBAL BUSINESS SOLUTIONS SOCIEDAD ANONIMA CERRADA</razonSocialFirmante>
  <RUCEmisor>10465020623</RUCEmisor>
  <razonSocialEmisor>admin</razonSocialEmisor>
  <codigoLocalEmisor>0000</codigoLocalEmisor>
  <domicilioFiscalEmisor></domicilioFiscalEmisor>
  <codigoBasePaisEmisor></codigoBasePaisEmisor>
  <serieBorrador></serieBorrador>
  <numeroBorrador></numeroBorrador>
  <tributo>
    <montoBaseImponible>8.47</montoBaseImponible>
    <montoTributo>1.52</montoTributo>
    <codigoBaseTributo>1000</codigoBaseTributo>
    <nombreTributo>IGV</nombreTributo>
    <codigoTipoTributo>VAT</codigoTipoTributo>
  </tributo>
  <cargoDescuento>
    <codigoBaseCargoDescuento>00</codigoBaseCargoDescuento>
    <tipoCargoDescuento>false</tipoCargoDescuento>
    <multiplicador>0.00000</multiplicador>
    <monto>0.00</monto>
    <codigoBaseMonedaMontoBase>PEN</codigoBaseMonedaMontoBase>
    <montoBase>8.47</montoBase>
    <monedaMonto>PEN</monedaMonto>
  </cargoDescuento>
  <cargoDescuento>
    <codigoBaseCargoDescuento>50</codigoBaseCargoDescuento>
    <tipoCargoDescuento>true</tipoCargoDescuento>
    <multiplicador>0.00000</multiplicador>
    <monto>0.00</monto>
    <codigoBaseMonedaMontoBase>PEN</codigoBaseMonedaMontoBase>
    <montoBase>8.47</montoBase>
    <monedaMonto>PEN</monedaMonto>
  </cargoDescuento>
  <codigoEstadoDocumento>1000</codigoEstadoDocumento>
</root>
`;
var parser = require('xml2json');

function replaceAll(str, find, replace) {
  return str.replace(new RegExp(find, 'g'), replace);
}

var options = {
  sanitize: true,
  trim: true,
  arrayNotation: ['detalle', 'documentoLeyenda', 'tributo', 'cargoDescuento']
};
var json = parser.toJson(xml, options);
mytext = JSON.stringify(json);
json = replaceAll(json, "{}", "\"\"");
console.log(json);