UNPKG

camt054

Version:

getting data from camt054 files

45 lines (34 loc) 1.77 kB
var fs = require('fs'); var path = require('path'); var finder = require('fs-finder'); var parseString = require('xml2js').parseString; var xpath = require('xpath'); var dom = require('xmldom').DOMParser; var express = require('express'); var app = express(); const commandLineArgs = require('command-line-arguments'); var params = commandLineArgs.getCommandLineArguments(); var select = xpath.useNamespaces({"ns": "urn:iso:std:iso:20022:tech:xsd:camt.054.001.04"}); var files = finder.in(params[0]).findFiles('camt.054-ESR-ASR_P*.xml'); var jsonString = []; files.forEach(function(file) { var xml = fs.readFileSync(file, 'utf8'); var doc = new dom().parseFromString(xml); //var xml = fs.readFileSync(__dirname + '/camt054.xml', 'utf8'); var debiteurs = select('//ns:TxDtls/ns:RltdPties/ns:Dbtr/ns:Nm/text()', doc); var refs = select('//ns:TxDtls/ns:RmtInf/ns:Strd/ns:CdtrRefInf/ns:Ref/text()', doc); var dates = select('//ns:TxDtls/ns:RltdDts/ns:AccptncDtTm/text()', doc); var amounts = select('//ns:TxDtls/ns:Amt/text()', doc); var ibans = select('//ns:TxDtls/ns:RltdPties/ns:DbtrAcct/ns:Id/ns:IBAN/text()',doc); for(i=0; i<debiteurs.length;i++){ console.log(debiteurs[i]+"|"+refs[i].toString().substring(refs[i].length-5, refs[i].length-1)+"|"+ amounts[i] +"|"+dates[i]);i jsonString.push({"reference":refs[i].toString().substring(refs[i].length-5, refs[i].length-1), "nom": debiteurs[i].toString(), "montant":amounts[i].toString(), "date":dates[i].toString()}); } }); //console.log((JSON.stringify(jsonString))); app.get('/choristes', function(req,res) { res.header("Access-Control-Allow-Origin", "*"); res.writeHead(200, {'Content-Type': 'application/json'}); res.end(JSON.stringify(jsonString)); }); app.listen(1336);