Sample
A sample XML fragement ~node:
<struct>
<string name="a">aaa</string>
<string name="b">bbb</string>
<number name="c">123</number>
<boolean name="d">true</boolean>
<array name="e">
<struct>
<string name="f">fff</string>
<number name="g">100</number>
</struct>
<boolean>true</boolean>
<array>
<number>10</number>
<number>20</number>
<number>30</number>
</array>
</array>
</struct>
The corresponding JavaScript object XML2JS(~node):
XML2JS(node) => {a:'aaa', b:'bbb', c:123, d:true, e:[{f:'fff', g:100}, true, [10, 20, 30]]}
function XML2JS(node) {
switch (node.baseName) {
case 'string':
return node.text;
case 'number':
return FLOAT(node.text);
case 'boolean':
return BOOL(node.text);
case 'date':
return ('#Date@' + node.text);
case 'time':
return ('#Time@' + node.text);
case 'datetime':
return ('#DateTime@' + node.text);
case 'array':
var A=[], C=node.childNodes;
for (var i=0, len=C.length; i