Some very old PHP code originally intended to become an image management tool.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

161 lines
3.0 KiB

function xmlToVar (data)
{
if (!data.hasChildNodes ())
return null;
var ret = null;
for (var node in data.childNodes)
{
var child = data.childNodes[node];
if (child.nodeType === 3 && child.nodeValue !== null)
{
ret = data.childNodes[node].nodeValue;
break;
}
}
switch (data.getAttribute ('type'))
{
case 'integer': ret = parseInt (ret, 10); break;
case 'double': ret = parseFloat (ret);
}
return ret;
}
function xmlToObjectArray (data)
{
var ret = new Array ();
if (! data.hasChildNodes ())
return ret;
for (var node in data.childNodes)
{
var child = data.childNodes[node];
if (child.nodeType === 1)
{
name = child.getAttribute ('name');
switch (child.nodeName)
{
case 'variable':
ret[name] = xmlToVar (child); break;
case 'array':
ret[name] = xmlToArray (child); break;
case 'class':
var cName = child.getAttribute ('class');
if (typeof (eval (cName)) === 'function')
ret[name] = eval ("new " + cName + "(child)");
else
ret[name] = xmlToObjectArray (child);
}
}
}
return ret;
}
function xmlToArray (data)
{
var ret = new Array ();
if (! data.hasChildNodes ())
return ret;
for (var node in data.childNodes)
{
var child = data.childNodes[node];
if (child.nodeType === 1 && child.nodeName === 'item')
{
var key = child.getAttribute ('key');
for (var _node in child.childNodes)
{
var _child = child.childNodes[_node];
if (_child.nodeType === 1)
{
switch (_child.nodeName)
{
case 'variable':
ret[key] = xmlToVar (_child); break;
case 'array':
ret[key] = xmlToArray (_child); break;
case 'class':
var cName = child.getAttribute ('class');
if (typeof (eval (cName)) === 'function')
ret[key] = eval ("new " + cName + "(child)");
else
ret[key] = xmlToObjectArray (child);
}
}
}
}
}
return ret;
}
function c_xmlify (data)
{
if (! data.hasChildNodes ())
return;
for (var node in data.childNodes)
{
var child = data.childNodes[node];
if (child.nodeType === 1)
{
var name = child.getAttribute ('name');
if (typeof (this[name]) !== 'undefined')
{
switch (child.nodeName)
{
case 'variable':
this[name] = xmlToVar (child); break;
case 'array':
this[name] = xmlToArray (child); break;
case 'class':
var cName = child.getAttribute ('class');
if (typeof (eval (cName)) === 'function')
this[name] = eval ("new " + cName + "(child)");
else
this[name] = xmlToObjectArray (child);
}
}
}
}
}
function deXmlify (data)
{
var ret = null;
var child = data.firstChild;
switch (child.nodeName)
{
case 'variable':
ret = xmlToVar (child); break;
case 'array':
ret = xmlToArray (child); break;
case 'class':
var cName = child.getAttribute ('class');
if (typeof (eval (cName)) === 'function')
ret = eval ("new " + cName + "(child)");
else
ret = xmlToObjectArray (child);
}
return ret;
}