forked from Kitware/vtk-js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
post-process.js
43 lines (37 loc) · 1.08 KB
/
post-process.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
function convert(value, type) {
if (['xsd:Integer', 'xsd:float'].indexOf(type) !== -1) {
return Number(value);
}
return value;
}
module.exports = function (xml) {
var atomsXML = xml.list.atom;
var outputAtoms = [];
atomsXML.forEach(function (atomXML) {
var atom = {};
outputAtoms.push(atom);
// Fill atom with informations
atom.id = atomXML.$.id;
// scalars
atomXML.scalar.forEach(function (scalar) {
var key = scalar.$.dictRef.split(':')[1];
var value = convert(scalar._, scalar.$.dataType);
atom[key] = value;
});
// label
atomXML.label.forEach(function (label) {
var key = label.$.dictRef.split(':')[1];
var value = label.$.value;
atom[key] = value;
});
// array
atomXML.array.forEach(function (array) {
var key = array.$.dictRef.split(':')[1];
var delimiter = array.$.delimiter || ' ';
var type = array.$.dataType;
var value = array._.split(delimiter).map(function (v) { return convert(v, type); });
atom[key] = value;
});
});
return { atoms: outputAtoms };
}