camt054
Version:
getting data from camt054 files
45 lines (34 loc) • 1.77 kB
JavaScript
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);