From e5cf855194b48d2d987a525bc927f61280937ab0 Mon Sep 17 00:00:00 2001 From: Michael Mathews Date: Mon, 21 Jun 2010 11:26:57 +0100 Subject: [PATCH] Normalise line endings in xml output. --- modules/goessner/json2xml.js | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/modules/goessner/json2xml.js b/modules/goessner/json2xml.js index acca15cc..5988c4df 100644 --- a/modules/goessner/json2xml.js +++ b/modules/goessner/json2xml.js @@ -30,9 +30,9 @@ var json2xml = (typeof exports === 'undefined')? {} : exports; // like commonjs if (hasChild) { for (var m in v) { if (m == "#text") - xml += v[m]; + xml += lines(v[m]); else if (m == "#cdata") - xml += ""; + xml += ""; else if (m.charAt(0) != "@") xml += toXml(v[m], m, ind+"\t"); } @@ -40,7 +40,7 @@ var json2xml = (typeof exports === 'undefined')? {} : exports; // like commonjs } } else { // added special-character transform, but this needs to be better handled [micmath] - xml += ind + "<" + name + ">" + v.toString().replace(/\n"; + xml += ind + "<" + name + ">" + makeSafe(lines(v.toString())) + "\n"; } return xml; }, @@ -52,5 +52,19 @@ var json2xml = (typeof exports === 'undefined')? {} : exports; // like commonjs return xml; } + + function lines(str) { + // normalise line endings, all in file will be unixy + str = str.replace(/\r\n/g, '\n'); + + return str; + } + + function makeSafe(str) { + // xml special charaters + str = str.replace(/